【问题标题】:Batch file ECHO not working after PUSHD command批处理文件 ECHO 在 PUSHD 命令后不起作用
【发布时间】:2014-01-06 08:48:24
【问题描述】:

我有一个带有以下行的 .bat(批处理)文件,最后一行 echo 没有运行。

set outputfile=C:\DeployLog-label-test.txt
echo ----- Start File 1 of 1 ----- >> %outputfile%
pushd C:\src&ant -Dinifile=C:\repo\IR.ini -Dfilelist="label.xml" >> %outputfile% 2>&1&popd
echo ----- End File 1 of 1 ----- >> %outputfile%

是因为 pushd 命令吗? 请帮忙。谢谢。

【问题讨论】:

    标签: windows batch-file command-line command


    【解决方案1】:

    不,在这种情况下,“问题”是ant 是一个批处理文件,如果从批处理文件(您的批处理文件)中调用另一个批处理文件,执行流程将转移到被调用的批处理,并且不返回给调用者。除非第二个批处理文件的调用是使用call 命令完成的。所以,你的代码应该是

    pushd C:\src&call ant -Dinifile=C:\repo\IR.ini -Dfilelist="label.xml" >> %outputfile% 2>&1&popd
    

    【讨论】:

    • 谢谢。现在最后一行正在写入日志文件,但是,它不会写入控制台!有什么想法吗?
    • @Chybie:您正在向输出文件发送(重定向>>)第一个回显、ant 的执行和第二个回显的输出。如果输出发送到日志文件,它不会进入控制台。如果您需要两者的输出,请使用tee 之类的东西(请参阅here 以获得良好的选项列表)。
    猜你喜欢
    • 2012-04-18
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2015-11-29
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多