答案1
如果脚本是在 Python 命令行中指定的,您可能会看到使用免费的 进程探索器。
运行时,右键单击任意列标题并选择“选择列...”。转到“处理图像”选项卡,勾选“命令行”旁边的复选框,然后单击“确定”。您还可以添加或删除其他列或重新排序选定的列。
答案2
改用 powershell
(Get-WmiObject win32_process -Filter "Name='python.exe' OR Name='python3.exe'").Commandline
此处的条件OR
只是供您创建更复杂查询的示例。当然,您可以将其缩短为类似
(gwmi win32_process -F "Name like 'python%'").Commandline
或者
(gwmi win32_process -F "CommandLine LIKE '%yourscript.py%'").Commandline
%
是个用于匹配任何字符串的通配符使用 WQL 语言
在现代 Windows 中你可以并且应该替换Get-WmiObject
为Get-CimInstance
您还可以通过以下方式CommandLine
向类添加自定义属性Diagnostics.Process
将以下内容添加到您的$PROFILE
$TypeData = @{
TypeName = [System.Diagnostics.Process].ToString()
MemberType = [System.Management.Automation.PSMemberTypes]::ScriptProperty
MemberName = 'CommandLine'
Value = {
if (('Win32NT' -eq [System.Environment]::OSVersion.Platform)) { # it's windows
(Get-CimInstance Win32_Process -Filter "ProcessId = $($this.Id)").CommandLine
} elseif (('Unix' -eq [System.Environment]::OSVersion.Platform)) { # it's linux/unix
Get-Content -LiteralPath "/proc/$($this.Id)/cmdline"
} elseif (('MacOSX' -eq [System.Environment]::OSVersion.Platform)) { # it's macos
# ???
}
}
}
Update-TypeData @TypeData -ErrorAction Ignore
然后像这样使用它
(Get-Process python).Commandline
如果你想从 cmd 执行此操作,请使用wmic
wmic process where "name like 'python%'" get processid,commandline
wmic process where "Commandline like '%python%'" get processid,commandline