Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 是否禁止批处理文件中的错误通知?_Windows_Batch File - Fatal编程技术网

Windows 是否禁止批处理文件中的错误通知?

Windows 是否禁止批处理文件中的错误通知?,windows,batch-file,Windows,Batch File,我正在尝试编写一个批处理文件(我的第一个批处理文件),它可以多次运行程序。不幸的是,重复运行的程序有时会崩溃,错误为“[program]遇到问题,需要关闭…等等”(事件1000)。这是一个问题,因为为了继续,我必须手动单击退出错误,然后循环继续,直到另一个错误发生或循环完成 cd C:\Users\username\Desktop\test_file for %%i in ( 1 2 3 ) do ( mkdir output%%i run_program.command -f

我正在尝试编写一个批处理文件(我的第一个批处理文件),它可以多次运行程序。不幸的是,重复运行的程序有时会崩溃,错误为“[program]遇到问题,需要关闭…等等”(事件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)

一般来说,在指令中附加
>nul
以处理生成的消息,或者使用
2>nul
2
必须连续才能处理错误消息

有时,错误消息作为标准消息生成,因此

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
可能需要

run_program.command -f envt_file.txt -b instructions.txt -p output%%i >nul 2>nul
是皮带和背带


这取决于您是只处理错误消息还是处理所有消息。

这个问题已经被问过了,所以我将在这里回答这个问题以获取Internet记录。我有同样的问题,这是给我的解决方案。应该适用于Windows 10:

  • 打开“组策略编辑器”(gpedit.msc)
  • 查找“计算机配置”->“管理模板”->“Windows组件”->“Windows错误报告”
  • 启用此设置,“防止显示严重错误的用户界面”
  • 可选:启用此选项,“禁用windows错误报告”将关闭任何错误报告
  • 如果您想知道您的程序是否再次停止运行,该怎么办?您可以执行以下任一操作:

    • 打开“事件查看器”查看所有内容的日志或:
    • 打开“控制面板”->“安全和维护”->“维护”->“查看可靠性历史记录”

    在末尾添加
    >nul
    不起作用--现在程序只是执行,没有在cmd shell中显示任何文本。问题是出现了一个显示错误的Windows对话框,因此我必须单击“确定”在一个单独的对话框中继续。我发现了另一个类似的问题,但我不理解打开cmd.exe单独实例的解决方案???是这个问题的另一个实例,我不理解建议的解决方案。由于可执行文件假设交互式响应,这些解决方案中的后一个可能会起作用-让批处理文件等待一段时间,然后在一段时间后强制终止它。这取决于可执行文件。有一个外部机会,
    echo.|可执行文件…
    可以工作,否则可能会自动热键…是否可以从CMD或批处理文件执行此操作?