【问题标题】:How to stop process from .BAT file?如何从 .BAT 文件中停止进程?
【发布时间】:2011-02-22 17:59:08
【问题描述】:

所以我有从一个 bat 文件开始的过程。如何阻止它?

【问题讨论】:

标签: file process batch-file


【解决方案1】:

我只是想在浏览器无法打开时终止所有 Chrome 实例(最近的 Chrome 令人讨厌的错误)。您最终会得到一堆从 2 到 ? 运行的 chrome.exe 进程。 我只是做了一个干净而快速的检查,看看它是否正在运行,如果是,就杀死它。最后的暂停只是为了让我可以查看结果,不需要。

@echo off
:again
taskkill /F /IM "chrome.exe"
if errorlevel=0 goto end
if errorlevel=1 goto again
:end
pause

对我来说很好用

【讨论】:

  • 此答案并未添加其他答案中未提及的新内容,而且令人困惑,因为您刚刚添加了用于解决与问题提到的不同问题的脚本。
【解决方案2】:

编辑: call runntaskkill.bat 更改为 call taskkillapp.bat 否则它将以相同的文件结束。

您可以制作两个批处理文件。一个名为 runtaskkill.bat,另一个名为 taskkillapp.bat。在文件 runtaskkill.bat 中添加以下代码:

call taskkillapp.bat [filenamehere].

然后到 taskkill.bat:

taskkill /f /im %1.

只要确保这两个文件在同一个目录(文件夹)中即可。

【讨论】:

    【解决方案3】:

    以下是如何从 .bat 文件中终止一个或多个进程。

    步骤 1. 打开首选文本编辑器并创建一个新文件。

    第 2 步。要终止一个进程,请使用“taskkill”命令,并使用“/im”参数指定要终止的进程的映像名称。示例:

    taskkill /im examplename.exe
    

    要“强制”终止进程,请使用“/f”参数,该参数指定强制终止进程。示例:

    taskkill /f /im somecorporateprocess.exe
    

    要杀死多个进程,请使用相应的进程名称重复步骤 2 的第一部分。示例:

    taskkill /im examplename.exe
    taskkill /im examplename1.exe
    taskkill /im examplename2.exe
    

    taskkill /f /im examplename.exe
    taskkill /f /im examplename1.exe
    taskkill /f /im examplename2.exe
    

    第 3 步。使用 .bat 扩展名将文件保存到所需位置。

    第四步,点击新建的bat文件运行。

    【讨论】:

      【解决方案4】:

      taskkill /F /IM notepad.exe这是从任务管理器中终止任务的最佳方式。

      【讨论】:

        【解决方案5】:

        为什么不使用 PowerShell?

        Stop-Process -Name notepad
        

        如果你在一个批处理文件中:

        powershell -Command "Stop-Process -Name notepad"
        powershell -Command "Stop-Process -Id 4232"
        

        【讨论】:

          【解决方案6】:

          由于 TASKKILL 可能在某些家庭/基本版 Windows 上不可用,因此这里有一些替代方案:

          TSKILL processName
          

          TSKILL PID
          

          请记住,processName 不应有 .exe 后缀,并且限制为 18 个字符。

          另一个选项是WMIC

          wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate
          

          wmic 提供比 taskkill 更大的灵活性。使用wmic Path win32_process get,您可以查看可以过滤的可用文件。

          【讨论】:

            【解决方案7】:

            当您从批处理文件启动进程时,它会作为一个单独的进程启动,而不会提示启动它的批处理文件(因为这会在此期间完成运行,父进程 ID 之类的内容将无济于事你)。

            如果您知道进程名称,并且它在所有正在运行的进程中是唯一的,则可以使用taskkill,就像@IVlad 在评论中建议的那样。

            如果它不是唯一的,您可能需要查看工作。它们在终止时终止所有派生的子进程。

            【讨论】:

              【解决方案8】:

              要终止您知道名称的进程,请尝试:

              taskkill /IM notepad.exe
              

              这会要求它关闭,但它可能会拒绝,提供“保存更改”等。如果你想强行杀死它,请尝试:

              taskkill /F /IM notepad.exe
              

              【讨论】:

              • 像魅力一样工作。实际上,没有 /F 的选项要求程序很好地关闭。然后程序仍然可以决定根本不关闭。我有一个程序可以在按下关闭按钮时最小化为托盘图标,这正是发生的情况。 /F 选项强制退出。
              • taskkill /F /IM notepad.exe 在大多数情况下对我来说更好。 taskkill /F /IM notepad.exe 在没有保存对话框的任务中向我抛出错误。它们没有正确关闭,并且可能发生不同的事情(程序可能保持打开状态,即使在对话框关闭后也是如此)。我也不希望在后台生成错误,所以我推荐/F /IM,除非它是 Word.exe 之类的。
              猜你喜欢
              • 1970-01-01
              • 2018-05-02
              • 2018-06-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多