你也可以在没有进程资源管理器的情况下,使用Windows的WMI服务来完成。在命令提示符下运行以下内容。
WMIC path win32_process get Caption,Processid,Commandline
如果你想把输出结果转存到一个文件中(让它更容易阅读),使用/OUTPUT开关:
WMIC /OUTPUT:C:\Process.txt path win32_process get Caption,Processid,Commandline
``` 如果你想把输出结果转存到一个文件中(让它更容易阅读),使用/OUTPUT开关:
0x1&
你可以使用 进程资源管理器 .
只需将鼠标悬停在进程上,就可以看到用于启动它的命令行参数。
另外,你也可以打开进程的属性,检查命令行。
也可以通过任务管理器实现。
打开任务管理器(通过CTRL-SHIFT-ESC、CTRL-ALT-DELETE或任何其他方法)。
对于Windows 7(可能还有Windows XP):
对于Windows 8:
一列命令行将被添加到当前显示的列中。
PowerShell来拯救你。
查找:
Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | where {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'}
杀死作为奖励:
Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | where {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'} | ForEach-Object { Invoke-WmiMethod -Path $_.__Path –Name Terminate }
你可以直接从powershell运行,或者从ps1运行,如果你已经设置好了系统。我详细介绍了在i kill zombies with powershell上的无限制脚本设置,以及其他powershell技巧……
前面的回答是很好的,如果进程已经在运行,并且不会很快终止。然而,如果你需要(像我一样)这样做,也许是在进程多次启动和/或快速终止的情况下,或者是在较长的时间内记录发生的事件,有一种方法是使用 进程监控 .
基本上,它可以记录系统中的各种事件,在这种情况下,我们只需要过滤 “进程启动 "事件和我们想要监控的进程名称,如下图所示。
然后保持进程监控器的运行,然后做任何你想做的事情来让你想记录的进程运行。你可以在 "Detail "栏或 "Command line "栏中看到命令行参数(取决于你如何配置这些参数)。例如:
当然,这样一来,你可以提取更多的相关信息,比如工作目录是什么,进程上传递了哪些环境变量等等。同时也很容易将结果导出到文件中。
当使用CygWin时,如果我启动一个Python进程,这是一个命令行的例子:
c:\CygWin\bin\python2.7.exe /usr/local/bin/sudoserver.py
但是Process Explorer只看到主exe:
C:\>tasklist | find "python" /i
python2.7.exe 5740 Console 1 15.312 KB
(注意“path: [错误打开进程信息]”(见EDIT-1))。tasklist
的结果相同。
Luis@Kenobi /cygdrive/c/
$ pgrep -f -l server.py
5740 /usr/bin/python2.7 /usr/local/bin/sudoserver.py
所以,到目前为止,我唯一知道的技巧,就是通过CygWin Bash shellpgrep
找到它。
知道这个很有用,只要CygWin在Windows中没有问题,你可以用它来运行许多POSIX和Python程序。
EDIT: 在Windows中,你似乎不需要管理员权限的任务列表。在CygWin中,你需要它们才能查看管理员的进程(在我看来更合理的是:完整的命令行可以有一些参数,比如密码在里面),所以我们必须在提升 管理员模式下运行CygWin** Bash。
EDIT-1: 如果你以管理员身份运行Process Explorer,这个问题就不会发生。谢谢你的指点,@Pacerier。