【问题标题】:For loop reading empty variableFor循环读取空变量
【发布时间】:2014-10-17 16:34:22
【问题描述】:

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

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、2 和 3 写入文本文件,但我也会得到一个带有空变量的最终条目。

谁能看出问题出在哪里?

【问题讨论】:

    标签: batch-file for-loop string


    【解决方案1】:

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

    for 命令之后放置goto :eofexit /b 以避免它

    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
    

    【讨论】:

    • 帮助很大!我自己观察和注意到的很好!谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2020-02-21
    • 2013-06-12
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多