这一定很简单。不幸的是,我也是。
“filelist.txt”是输出:dir/b
此代码有效:对于“filelist.txt”中的每一行,该行都按预期回显。
for /F "tokens=*" %%A in (filelist.txt) do echo %%A
此代码不起作用:对于“filelist.txt”中的每一行,仅回显变量名称“%A”。
for /F "tokens=*" %%A in (filelist.txt) do call :sub1
goto :eof
:sub1
echo %%A
goto :eof
我做错了什么?提前致谢。
最佳答案
尝试:
@echo off
for /F "tokens=*" %%A in (filelist.txt) do call :sub1 %%A
goto :eof
:sub1
echo %1
goto :eof
您需要将参数 (%%A
) 传递给子例程 (arg guide),然后在您的子例程中您可以按位置访问它 (%1
).
关于windows - 批处理,调用 : Why can't I pass a token to my subroutine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4831629/