我正在尝试从另一个bat文件中运行bat文件并重定向输出。这工作正常。但是,在调用bat文件完成之后,我想打印到我重定向到的一个文件,但它似乎没有工作。
这就是我现在正在做的事情。
@ECHO OFF
call %1 2> error.log 1> compile.log
echo Complete >> error.log
我希望在bat文件运行完毕后将完整文本附加到日志中。但是,它永远不会写出来。该日志仅包含我正在调用的bat文件的输出。
有什么建议吗?感谢。
答案 0 :(得分:2)
我可以想到这种行为的两个不同原因:
使用call %1
调用的批处理文件会更改当前工作目录。这会导致Complete
像以前一样写入不同的error.log
,因为工作目录在此期间已更改。新的当前工作目录也可以写保护,导致根本没有创建error.log
。
使用call %1
调用的批处理文件包含不带参数exit
的命令/B
,这会立即退出正在运行的命令行进程。在这种情况下,echo
以下call
的行永远不会执行。输入关于help exit
的{{1}}或exit /?
后,请在命令提示符窗口中查看简短的帮助输出。