Board logo

标题: [文件操作] [已解决]批处理如何寻找所有子目录里面的指定文件并用外部程序调用? [打印本页]

作者: kentfung    时间: 2011-12-2 21:33     标题: [已解决]批处理如何寻找所有子目录里面的指定文件并用外部程序调用?

本帖最后由 kentfung 于 2011-12-2 23:34 编辑

如何寻找本目录下所有子目录里面的指定文件,并用外部程序调用

如:file目录下,分别有01,02,03……的目录(这些子目录文件名不规则的,可能是中文,数字,英文等),里面都会有一个*.abc的文件(这个文件名不确定,但扩展名是一定的),然后利用出来的结果,分别调用一个外部程序,格式如下
  1. program.exe -input z:\file\01\*.abc -setting -output z:\file\01\*
复制代码
-output z:\file\01\*   这里面的“*”跟*.abc对应的,program.exe会自动为“*”加上扩展名的。

小弟是小白,最近迷上批处理了,希望各位大大能看看怎样处理
作者: wankoilz    时间: 2011-12-2 21:53

for /r %%a in (*.abc) do program.exe -input "%%a" -setting -output "%%a"

for /r “”  可以读取指定目录的子目录下的文件。""里可以指定读取路径,默认是批处理自身所在目录。
作者: szjwxn    时间: 2011-12-2 22:15

看看这样行不?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. color 1a
  4. for /r file %%a in (*.abc) do (
  5. :: 外部调用命令
  6. start  %%a
  7.   pause
  8.   )
  9. pause>nul
复制代码

作者: powerbat    时间: 2011-12-2 22:21

楼上只会一个start是吧?楼主的要求都不看?
作者: kentfung    时间: 2011-12-2 22:59

for /r %%a in (*.abc) do program.exe -input "%%a" -setting -output "%%a"

for /r “”  可以读取指定 ...
wankoilz 发表于 2011-12-2 21:53



    for /r “”   指定读取路径?   for /r "Z:\file\01" 是这样吗?
不过我里面的01是一些不规则的目录,也不可能自己一个一个打上去啊??是不是会有一些函数之类的东西来代表呢??
作者: powerbat    时间: 2011-12-2 23:08

不需要具体的目录名,用父目录即可。
for /r "Z:\file" ...
作者: awk    时间: 2011-12-2 23:31

回复 5# kentfung


for /r 命令自己可以遍历子目录
作者: kentfung    时间: 2011-12-2 23:32

嘻嘻。。成功了,谢谢你啊。。




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