Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows批处理脚本列出目录中的文件并分配给变量_Windows_Batch File - Fatal编程技术网

Windows批处理脚本列出目录中的文件并分配给变量

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

我一直在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 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