2016-02-11 26 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