使用 .bat 文件循环遍历 folders/subfolder 并提供 folder/subfolder 作为 exe 的输入
Use .bat file to loop through folders/subfolder and and provide the folder/subfolder as input to an exe
我必须 运行 一个存储在特定文件夹中的工具 (.exe)。(比如 C:\Temp)
此工具的输入参数是放置在各种其他 folders/subfolders 中的 (.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
命令可以省略。
我必须 运行 一个存储在特定文件夹中的工具 (.exe)。(比如 C:\Temp)
此工具的输入参数是放置在各种其他 folders/subfolders 中的 (.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
命令可以省略。