用于循环读取空变量

时间:2014-08-24 09:50:22

标签: batch-file for-loop string

我有一个在我的批处理文件中运行的子程序,在此期间我输出到每个操作成功的文本文件。一个例子是......

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

使用这个我可以将一个,两个和三个写入文本文件,但我也得到一个带有空变量的最终条目。

任何人都可以看到问题所在吗?

1 个答案:

答案 0 :(得分:4)

:operation只是一个标签。当for命令结束其工作时,批处理文件继续执行,在标签之后输入代码并且其中的代码被执行,但这次没有任何传递的参数。

goto :eof命令后放置exit /bfor以避免它

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