我一直使用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()
您无需分配给变量即可将其传递给函数。所调用的函数接收参数as %1
,并且可以使用%~1
语法对其进行完善。
我还建议您将CD
命令更改为PUSHD
。这样(1)您的%MPWR_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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句