批量FOR,CALL:为什么我不能将令牌传递给我的子程序?

时间:2011-01-28 18:18:08

标签: windows batch-processing

这一定很简单。不幸的是,我也是。

“filelist.txt”是输出:dir / b

此代码有效:对于'filelist.txt'中的每一行,该行都按预期进行回显。

for /F "tokens=*" %%A in (filelist.txt) do echo %%A

此代码不起作用:对于'filelist.txt'中的每一行,只回显var名称“%A”。

for /F "tokens=*" %%A in (filelist.txt) do call :sub1
goto :eof
:sub1
echo %%A
goto :eof

我做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:4)

尝试:

@echo off
for /F "tokens=*" %%A in (filelist.txt) do call :sub1 %%A
goto :eof
:sub1
echo %1
goto :eof

您需要将参数(%%A)传递给子例程(arg guide),然后在子例程中,您可以按位置(%1)访问它。