簡體   English   中英

使用.bat文件循環瀏覽文件夾/子文件夾,並提供該文件夾/子文件夾作為exe的輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM