2016-02-11 39 views
0

我想寫一個批處理文件(我的第一批文件)多次運行程序。不幸的是,被重複運行的程序有時會因爲錯誤「[程序]遇到問題並需要關閉...... etc」(事件1000)而崩潰。這是一個問題,因爲爲了繼續我不得不手動點擊出錯,然後循環繼續,直到發生另一個錯誤或循環完成。禁止批處理文件中的錯誤通知?

cd C:\Users\username\Desktop\test_file 
for %%i in (1 2 3) do (
    mkdir output%%i 
    run_program.command -f envt_file.txt -b instructions.txt -p output%%i 
) 
cd .. 

是否有某種方式來運行「run_program.command」和制止可能出現的任何錯誤消息?

(我已經看到了一些解決方案,可以工作,但恐怕要測試他們中的一些,因爲我在這個新的,仍然是那種害怕的批處理文件!)

(我使用的是Windows 10)

回答

0

一般而言,附加>nul的指令處置生成的消息,或使用2>nul(所述2>必須是連續的處置錯誤消息的。

有時,錯誤消息是克如果每個人都遵守規則

run_program.command -f envt_file.txt -b instructions.txt -p output%%i >nul 

enerated作爲標準的消息,所以

run_program.command -f envt_file.txt -b instructions.txt -p output%%i >nul 

應該工作可能需要

run_program.command -f envt_file.txt -b instructions.txt -p output%%i >nul 2>nul 

是皮帶和 - 括號。

真的取決於您是要僅處理錯誤消息還是處理所有消息。

+0

在末尾添加'> nul'不起作用 - 現在程序只是執行而不在cmd shell中顯示任何文本。問題是出現一個顯示錯誤的Windows對話框,所以我必須在單獨的對話框中單擊「確定」繼續。我發現另一個類似的問題[這裏](http://stackoverflow.com/questions/9324461/how-to-make-batch-file-continue-running-when-the-triggered-exe-crashes),但我不理解打開一個單獨的cmd.exe實例的解決方案? – LaPlaya

+0

[這裏](http://stackoverflow.com/questions/18579394/how-to-avoid-prompt-when-exe-crashes?rq=1)是這個問題的另一個例子,我不明白提出的解決方案。 – LaPlaya

+0

由於可執行文件採用了交互式響應,所以這些解決方案中的後者可能會起作用 - 讓批處理文件等待一段時間,然後在一段時間後強制終止它。真的取決於可執行文件。有一個外部的機會,'echo。| executable ...'會工作,否則可能autohotkey ... – Magoo