![](/img/trans.png)
[英]batch file to create new subfolder in folder, move file to newly created subfolder, for all folders in directory
[英]Use .bat file to loop through folders/subfolder and and provide the folder/subfolder as input to an exe
我必须运行存储在特定文件夹中的工具(.exe)。(说C:\\ Temp)
此工具的输入参数是放置在其他各个文件夹/子文件夹中的(.inf)文件。(例如C:\\ Test \\ SampleInfFiles,C:\\ Test \\ SampleInfFiles \\ Inf2)
我想创建一个批处理文件,在其中可以在各个文件夹上递归运行此工具。
我不确定如何提供inf的文件夹名称作为工具的输入参数。
@echo off
for /r /d C:\Test\SampleInfFiles %%x in (dir /b *.inf) do(
pushd "%%x"
call C:\Test\ScanInf.exe
popd
)
我是这一切的新手。 您能帮忙创建一个批处理文件吗?
如果我理解正确,则需要为可执行文件指定包含一个或多个inf文件的文件夹,而不是inf文件本身。
显然,参数的顺序很重要。 for
期望/r
之后的部分为路径。 此外,您可以仅指定*
作为集合。
现在,循环将浏览给定文件夹的所有子文件夹。 在循环内部,它将检查该文件夹是否包含inf
文件(在该级别上)。 如果是这样,则以文件夹为参数调用可执行文件。 注意变量中~
的使用。 这会删除所有引号,因此您可以安全地添加引号,而不必冒双引号的风险。
@echo off
for /d /r C:\Test\SampleInfFiles\ %%x in (*) do (
pushd "%%~x"
if exist %%x\*.inf call C:\Test\ScanInf.exe "%%~x"
popd
)
请参阅: 使用批处理参数
这里是一个很好的单线:
for /R "C:\Test\SampleInfFiles" /D %%X in (*.*) do if exist "%%~fX\*.inf" call C:\Test\ScanInf.exe "%%~fX"
如果要直接在命令提示符下运行该命令,请将每个%%
替换为%
。
我认为可以省略call
命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.