2014-09-05 224 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

相關問題