簡體   English   中英

Windows批處理腳本,用於列出目錄中的文件並分配給變量

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

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