我有一个在我的批处理文件中运行的子程序,在此期间我输出到每个操作成功的文本文件。一个例子是......
set Tasks=One Two Three
set LogFile=Log.txt
for %%T in (%Tasks%) do call :Operation %%T
:Operation
set LogEntry=%1
echo %LogEntry%>> %LogFile%
goto :EOF
使用这个我可以将一个,两个和三个写入文本文件,但我也得到一个带有空变量的最终条目。
任何人都可以看到问题所在吗?
答案 0 :(得分:4)
:operation
只是一个标签。当for
命令结束其工作时,批处理文件继续执行,在标签之后输入代码并且其中的代码被执行,但这次没有任何传递的参数。
在goto :eof
命令后放置exit /b
或for
以避免它
set Tasks=One Two Three
set LogFile=Log.txt
for %%T in (%Tasks%) do call :Operation %%T
goto :eof
:Operation
set LogEntry=%1
echo %LogEntry%>> %LogFile%
goto :EOF