Board logo

标题: [文件操作] [已解决]批处理如何根据文件夹内的文件扩展名不同执行不同命令? [打印本页]

作者: read4016    时间: 2015-5-7 20:08     标题: [已解决]批处理如何根据文件夹内的文件扩展名不同执行不同命令?

本帖最后由 read4016 于 2015-5-8 10:24 编辑

判断的测试文件夹内的文件格式,主要有两种jpg和pdf两种格式,判断如果是jpg后缀的话就在测试文件夹下执行下面的1的命令,如果是pdf后缀的格式文件就在测试文件夹下执行下面的2命令。

1、
如果测试文件夹内的文件是jpg时,运行以下命令,运行的结果是将那些图片合并成一个1.pdf
convert *.jpg 1.pdf

2、如果测试文件夹内的文件是pdf时,运行以下命令,运行的结果是将那些pdf合并成一个combined.pdf
pdftk *.pdf cat output combined.pdf
作者: gawk    时间: 2015-5-7 21:13

  1. @echo off
  2. dir /b "测试\*.*" | findstr /i "\.jpg$" >nul 2>&1 && echo 执行xxx1
  3. dir /b "测试\*.*" | findstr /i "\.pdf$" >nul 2>&1 && echo 执行xxx2
  4. pause
复制代码

作者: pcl_test    时间: 2015-5-7 21:35

本帖最后由 pcl_test 于 2015-5-7 21:43 编辑
  1. @for /r %%a in (测试\*.*) do @if /i "%%~xa" equ ".jpg" (echo 执行命令1) else if /i "%%~xa" equ ".pdf" (echo 执行命令2)
复制代码

作者: Bella    时间: 2015-5-7 22:00

  1. @echo off
  2. pushd "测试"
  3. if exist *.jpg (命令1) else if exist *.pdf 命令2
  4. pause
复制代码

作者: read4016    时间: 2015-5-7 22:30

回复 2# gawk
实现不了,我重新编辑了问题,上传了测试文件和软件,麻烦测试下
作者: read4016    时间: 2015-5-7 22:31

回复 3# pcl_test
实现不了,我重新编辑了问题,上传了测试文件和软件,麻烦测试下
作者: read4016    时间: 2015-5-7 22:38

回复 4# Bella
实现不了,我重新编辑了问题,上传了测试文件和软件,麻烦测试下
作者: pcl_test    时间: 2015-5-7 22:47

回复 6# read4016
借Bella的代码修改下
  1. @echo off
  2. set "folder=测试"
  3. if exist "%folder%\*.jpg" (convert "%folder%\*.jpg" "%folder%\1.pdf") else if exist "%folder%\*.pdf" (pdftk "%folder%\*.pdf" cat output "%folder%\combined.pdf")
  4. pause
复制代码

作者: read4016    时间: 2015-5-7 22:51

回复 8# pcl_test

测试功能实现,谢谢
作者: gawk    时间: 2015-5-7 22:54

  1. @echo off
  2. dir /b "测试\*.*" | findstr /i "\.jpg$" >nul 2>&1 && convert 测试\*.jpg 1.pdf
  3. dir /b "测试\*.*" | findstr /i "\.pdf$" >nul 2>&1 && pdftk 测试\*.pdf cat output combined.pdf
  4. pause
复制代码

作者: terse    时间: 2015-5-8 11:21

这样可行不
  1. convert *.jpg 1.pdf ||pdftk *.pdf cat output combined.pdf
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2