我有一個批處理文件,它將使用DOS啓動命令運行多個程序。但是,我無法將程序的結果寫入各自的文本文件。使用DOS啓動命令無法寫入批處理文件處理結果
start program1.exe > result1.txt
start program2.exe > result2.txt
如果我的批處理文件只是
program1.exe > result1.txt
那麼結果可以被寫入result1.txt
有沒有在我的語法有問題?謝謝。
我有一個批處理文件,它將使用DOS啓動命令運行多個程序。但是,我無法將程序的結果寫入各自的文本文件。使用DOS啓動命令無法寫入批處理文件處理結果
start program1.exe > result1.txt
start program2.exe > result2.txt
如果我的批處理文件只是
program1.exe > result1.txt
那麼結果可以被寫入result1.txt
有沒有在我的語法有問題?謝謝。
只要程序寫到標準輸出,你可以通過使用單獨的CMD和逃避重定向運營商處獲得由開始稱爲命令的輸出
試試這個:
start "" CMD /C program1.exe^>result1.txt
start "" CMD /C program2.exe^>result2.txt
例如:
c:\Scripts\Batch>start "" CMD /C ping -n 1 localhost>testping1.txt
c:\Scripts\Batch>type testping1.txt
*Nothing comes up because the file is empty*
c:\Scripts\Batch>start "" CMD /C ping -n 1 localhost^>testping1.txt
c:\Scripts\Batch>type testping1.txt
Pinging YourComputer [::1] with 32 bytes of data:
Reply from ::1: time<1ms
Ping statistics for ::1:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
是的,如果您輸入「start winword.exe> result.log」,則日誌中沒有寫入任何內容。這很平常。 – Endoro 2013-05-09 09:44:57
program1.exe是一個將結果打印到控制檯上的程序,我正在使用重定向操作符將結果寫入文件 – Michael 2013-05-09 09:49:26
某些程序不會將其輸出寫入STDOUT,它們將寫入STDERR或其他Streams(例如java.exe)。 – Endoro 2013-05-09 10:55:08