Windows批处理脚本列出目录中的文件并分配给变量
我一直在Unix中编写脚本,但现在需要在Windows中执行某些操作。 要求是属性文件包含path变量。脚本需要列出该路径下的所有文件,然后对每个文件调用函数。这就是我一直在尝试的Windows批处理脚本列出目录中的文件并分配给变量,windows,batch-file,Windows,Batch File,我一直在Unix中编写脚本,但现在需要在Windows中执行某些操作。 要求是属性文件包含path变量。脚本需要列出该路径下的所有文件,然后对每个文件调用函数。这就是我一直在尝试的 @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 FI
@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\u PATH%
变量可以包含驱动器号或网络路径,(2)bat可以稍后使用POPD
干净地还原当前目录
因此,请阅读HELP PUSHD
和HELP CALL
并尝试此操作
pushd %MPWR_PATH%
for %%i in (*) do CALL :display %%i
popd
goto :eof
:display
echo %~f1
goto :eof