我嘗試創建bat文件來迭代僅在目錄中的文件,其中文件名以特定字開頭。 例如:
的companyName .module1.exe
的companyName .module2.dll通過.bat迭代目錄中的特定文件
我知道如何遍歷文件,但不知道如何檢查他們的名字用於特定條件。
我嘗試創建bat文件來迭代僅在目錄中的文件,其中文件名以特定字開頭。 例如:
的companyName .module1.exe
的companyName .module2.dll通過.bat迭代目錄中的特定文件
我知道如何遍歷文件,但不知道如何檢查他們的名字用於特定條件。
以下添加到您的批處理文件:
for /F "eol=: tokens=*" %%A in ('dir /A-D /B "companyName*"') do (echo %%~fA)
這個腳本會echo
的所有文件與的companyName在當前工作目錄前綴開頭(僅文件)。將echo
替換爲您想要執行的任何其他命令或命令。
更新1:爲了在不同的目錄看,你既可以
for /F "eol=: tokens=*" %%A in ('dir /A-D /B "pathToLookIn/companyName*"') do (echo %%~fA)
或
pushd \ & cd "pathToLookIn" & (for /F "eol=: tokens=*" %%A in ('dir /A-D /B "companyName*"') do (echo %%~fA)) & popd
凡pathToLookIn是一個完全合格的或相對路徑。
更新2:我已經更新了for /F
循環處理與;
開始爲@dbenham建議的文件名。
好吧,如果你知道如何遍歷文件,然後就用這些知識:
for %%f in (companyName*) do (
...
)
注意遍歷的dir
輸出是容易出錯,而且在許多情況下裂傷Unicode字符。由於for
能夠直接迭代,因此很少需要使用劣質選項。
你的代碼完美地工作,但是當我想使用特定的目錄時,它需要所有文件。我使用下一個命令 FOR('dir/B「Company *」/ b D:\ DLLS \ current')FOR/F「tokens = *」%% A do(ECHO %% A) 錯誤在哪裏? – Polaris 2012-02-18 10:43:33
如何將當前工作目錄更改爲特定目錄? – Polaris 2012-02-18 10:46:49
我現在在路上。我會盡快更新我的答案。 – mrvincenzo 2012-02-18 11:18:40