Gin*_*sor 1 windows batch-file
我没有成功编写适当的批处理文件,将不胜感激。
假设我在D:\ Test \中有一个称为script.exe的exe。要执行此script.exe,它需要一个.bin文件的附加参数(例如bin01.bin,bin02.bin)。
因此,它将类似于:script.exe -i bin01.bin,script.exe -i bin01
我希望脚本与所有子文件夹中的所有.bin文件一起执行
D:\Test\script.exe
D:\Test\Folder01\bin01.bin
D:\Test\Folder01\bin02.bin
D:\Test\Folder02\bin01.bin
D:\Test\Folder03\bin01.bin
anyone could help me here? Thanks a lot in advance.
要从命令提示符窗口直接执行:
for /R "D:\Test" %I in (*.bin) do @D:\Test\script.exe -i "%I"
Run Code Online (Sandbox Code Playgroud)
并在批处理文件中使用相同的命令行:
@for /R "D:\Test" %%I in (*.bin) do @D:\Test\script.exe -i "%%I"
Run Code Online (Sandbox Code Playgroud)
命令FOR在目录和所有子目录中递归搜索D:\Test与通配符模式匹配的文件*.bin。
找到的每个文件的名称均带有区分大小写的循环变量的完整路径I。
FOR每个文件的可执行文件执行D:\Test\script.exe与第一个参数-i和第二个参数是找到的文件与双引号括起来,以适用于任何* .bin文件名,甚至那些含有空格或以下字符中的一个完整路径名称:&()[]{}^=;!'+,`~。
@整个FOR命令行的开头只是告诉Windows命令解释器cmd.exe,在默认情况下,在执行到控制台窗口之前,不要在预处理后回显命令行。
@在开始时,D:\Test\script.exe避免在循环的每次迭代中将此命令输出到控制台。
批处理文件的开头通常会关闭执行前命令行的回显,@echo off如下所示。
@echo off
for /R "D:\Test" %%I in (*.bin) do D:\Test\script.exe -i "%%I"
Run Code Online (Sandbox Code Playgroud)
为了了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。
echo /?for /?