使用 Windows 命令提示符查找 python 脚本的 Windows PID
Find Windows PID of a python script with Windows Command Prompt
我正在运行同时在一台windows机器上运行正在运行两个不同的python脚本运行,我想从命令提示符处杀死一个而不是另一个.使用名称为 "python.exe" 的 taskkill 不允许我选择仅终止其中一个脚本。
在 windows 中是否有一种方法可以仅终止这些任务中的一个,由其起源的脚本决定?
例如:如果我 运行 python_process1.py 和 python_process2.py 并且想终止仅与 python_process2.py 关联的 .exe 并单独留下 python_process1.py .
更新:下面的解决方案不会终止进程,问题仍然在于通过 python 脚本名称识别进程的 PID。如果这是不可能的,有没有办法选择性地杀死 windows 上我不知道的 python 脚本?
谢谢。
使用 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
以匹配您实际调用每个脚本的方式,它应该适合您
我正在运行同时在一台windows机器上运行正在运行两个不同的python脚本运行,我想从命令提示符处杀死一个而不是另一个.使用名称为 "python.exe" 的 taskkill 不允许我选择仅终止其中一个脚本。
在 windows 中是否有一种方法可以仅终止这些任务中的一个,由其起源的脚本决定?
例如:如果我 运行 python_process1.py 和 python_process2.py 并且想终止仅与 python_process2.py 关联的 .exe 并单独留下 python_process1.py .
更新:下面的解决方案不会终止进程,问题仍然在于通过 python 脚本名称识别进程的 PID。如果这是不可能的,有没有办法选择性地杀死 windows 上我不知道的 python 脚本?
谢谢。
使用 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
以匹配您实际调用每个脚本的方式,它应该适合您