2014-09-05 259 views
0

我继承了一个仅超过6000行的Windows批处理文件,并且它作为Windows Server 2003 R2上的计划任务运行。将整个控制台输出输出到文本文件

在批处理代码中,有些回声和重定向用于写入日志文件,但有几百个未记录的调用和命令。

所以我想捕捉整个控制台输出到一个文本文件进行评估和调试。

我发现了几个解决方案发布,但没有我试过实际的工作。

有没有办法做到这一点,而不必添加到批处理代码本身在几百个地方试图获得我需要的?

回答

0

写一个包装:

wrapper.cmd

call batch.cmd >>logfile.txt 

,你也可以尝试来包装你整个文件身体

(
<body> 
) >>logfile.txt 

但可以根据发生了什么事情是靠不住的在身体里,我发现了。

+0

非常感谢小费。它没有给我任何控制台输出,只有与运行我的original.bat >> logfile.txt相同的输出,并且parens不起作用。但是...使用你的包装确实告诉我,有一个UAC权限问题与大批量文件调用的EXE之一 - 这是一个巨大的帮助。所以再次感谢! – manstrocity 2014-09-05 14:47:02

+0

你是说你得到控制台输出不会被重定向>>?如果是这样,执行的程序不会使用stdout。也许尝试添加2>&1将stderr重定向到stdout。 – ths 2014-09-05 14:53:54

+0

重定向输出不会再次重定向。 '(echo foobar> file.txt)> out.txt'不会将“foobar”写入out.txt,而是写入file.txt。 (例如,我使用'echo foobar> con'将输出写入屏幕(仅),即使整个脚本被重定向到一个文件) – Stephan 2014-09-05 16:21:02

相关问题