【问题标题】:Find Windows PID of a python script with Windows Command Prompt使用 Windows 命令提示符查找 python 脚本的 Windows PID
【发布时间】:2018-04-05 16:50:36
【问题描述】:

我在一台 Windows 机器上同时运行两个不同的 python 脚本,我想从命令提示符中杀死一个而不是另一个。使用名称为“python.exe”的 taskkill 不允许我选择只杀死其中一个脚本。

有没有办法在 Windows 中只杀死其中一个任务,由它产生的脚本决定?

例如:如果我运行 python_process1.py 和 python_process2.py 并想终止与 python_process2.py 关联的 .exe 并单独保留 python_process1.py。

更新:下面的解决方案并没有杀死进程,问题仍然在于通过python脚本名称识别进程的PID。如果这是不可能的,有没有办法选择性地杀死我不知道的 windows 上的 python 脚本?

谢谢。

【问题讨论】:

    标签: python windows command-prompt taskkill


    【解决方案1】:

    使用 Get-WmiObject 和 PowerShell,您可以检查每个进程的命令行参数,然后将选定的进程 ID 传递给 taskkill。

    这个例子展示了如何杀死一个执行脚本test.py的进程:

    PS C:\Users\Administrator> taskkill.exe /F /PID $(Get-WmiObject Win32_Process -Filter "name = 'python.exe'" | Where-Object {$_.CommandLine -like '*.\test.py'} | Select -ExpandProperty ProcessId)
    

    修改 *.\test.py 以匹配您实际调用每个脚本的方式,它应该适合您

    【讨论】:

    • 在 PowerShell 中,最好保留对 python.exe 进程的引用以便显式终止它,而不是搜索命令行并使用 taskkill.exe。
    • 嗨 - 终于开始实现这一点,该命令在语法方面出现错误。 “PID 的预期值。”第一个想法是正在搜索的脚本没有运行,但它正在运行。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多