重定向后,CMD ECHO不会打印到文件

时间:2014-10-06 16:43:13

标签: batch-file cmd io-redirection

我正在尝试从另一个bat文件中运行bat文件并重定向输出。这工作正常。但是,在调用bat文件完成之后,我想打印到我重定向到的一个文件,但它似乎没有工作。

这就是我现在正在做的事情。

@ECHO OFF
call %1 2> error.log 1> compile.log
echo Complete >> error.log

我希望在bat文件运行完毕后将完整文本附加到日志中。但是,它永远不会写出来。该日志仅包含我正在调用的bat文件的输出。

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:2)

我可以想到这种行为的两个不同原因:

  1. 使用call %1调用的批处理文件会更改当前工作目录。这会导致Complete像以前一样写入不同的error.log,因为工作目录在此期间已更改。新的当前工作目录也可以写保护,导致根本没有创建error.log

  2. 使用call %1调用的批处理文件包含不带参数exit的命令/B,这会立即退出正在运行的命令行进程。在这种情况下,echo以下call的行永远不会执行。输入关于help exit的{​​{1}}或exit /?后,请在命令提示符窗口中查看简短的帮助输出。