[英]Windows batch script to list files in directory and assign to variables
我一直使用Unix編寫腳本,但是現在需要在Windows中執行某些操作。 要求是屬性文件包含路徑變量。 該腳本需要列出該路徑下的所有文件,然后在每個文件上調用一個函數。 這就是我一直在嘗試的
@For /F "tokens=1* delims==" %%A IN (C:\Work\sample\myFile.properties) DO (
IF "%%A"=="MPWR_EXPORT_PATH" set MPWR_EXPORT_PATH=%%B
IF "%%A"=="FILE_SHARE" set FILE_SHARE=%%B
)
cd %MPWR_EXPORT_PATH%
FOR %%i IN (*) DO echo %%i
問題是:如何將%% i分配給變量,然后將文件名傳遞給函數DISPAY()
您無需分配給變量即可將其傳遞給函數。 被調用函數將參數接收為%1
,並且可以使用%~1
語法對其進行優化。
我還建議您將CD
命令更改為PUSHD
。 這樣(1)您的%MPWR_PATH%
變量可以包含驅動器號或網絡路徑,並且(2)蝙蝠以后可以使用POPD
干凈地還原當前目錄。
因此,請閱讀“ HELP PUSHD
和“ HELP CALL
並嘗試一下。
pushd %MPWR_PATH%
for %%i in (*) do CALL :display %%i
popd
goto :eof
:display
echo %~f1
goto :eof
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.