在Windows中的命令行上显示正在运行的进程的EXE文件路径


26

如何在Windows中从命令行显示每个正在运行的进程的完整EXE文件路径?

我尝试了tasklistpslist,但是它们没有显示完整路径:

tasklist /FI "ImageName eq Spring.Tests.exe" /v /fo List

给出:

Image Name:   Spring.Tests.exe
PID:          3956
Session Name: Console
Session#:     1
Mem Usage:    9,772 K
Status:       Running
User Name:    W81ENTX64DELPHI\Developer
CPU Time:     0:00:01
Window Title: Spring

pslist Spring.Tests -x

给出:

Name                Pid      VM      WS    Priv Priv Pk   Faults   NonP Page
Spring.Tests       3956   83472    9772    5320    5692     5037     11  157
 Tid Pri    Cswtch            State     User Time   Kernel Time   Elapsed Time
1488  10     11018     Wait:UserReq  0:00:00.906   0:00:01.046    0:53:06.977

由于Spring.Tests.exe可以放在各种目录中,因此我想知道执行了哪个目录。


1
哦,这是一个经典的问题..除了任务管理器有专栏。对于命令行,WMIC和powershell可以。它甚至在这里或在stackoverflow上。.必须到处都是。。。实际上,我在这里看不到它的完整答案,我记了一下。。我要检查一下
barlop

@barlop,这很有趣:当您发表评论时,我已经在进行PowerShell的试验,因为我也正在进行其他PowerShell的试验(:
Jeroen Wiert Pluimers 2014年

不需要一个“:(”你的方法是非常整洁,你发现它快
barlop

1
我一定是自闭症!也许您应该在笑脸中留个鼻子以使其更清晰;-)
barlop 2015年

1
@kayleeFrye_onDeck我在提升的UAC令牌下运行解决方案取得了更好的成功,但是我真的希望有technet.microsoft.com/en-us/sysinternals/processexplorer.aspx的命令行版本,该版本允许在该令牌下进行可靠的查询。
Jeroen Wiert Pluimers

Answers:


26

除了您给出的那一行外,还有很多其他行(除第二行外)可用于列出路径:

PS C:\> gwmi win32_process | select Handle, CommandLine | format-list
PS C:\> gwmi win32_process | select name
PS C:\> gwmi win32_process | select CommandLine
C:\>wmic process get ProcessID,ExecutablePath
C:\>wmic process where "name='mysqld.exe'" get ProcessID, ExecutablePath
C:\>wmic process where "name='mysqld.exe'" get ProcessID, ExecutablePath /FORMAT:LIST

这具有快速(wmic)的优势,因为powershell太慢了!!!
机器人先生

非常注意所使用的格式。例如,在name字段中不包括单引号将导致此中断。
kayleeFrye_onDeck

@kayleeFrye_onDeck好,鉴于命令的长度,我希望有人无论如何都可以复制/粘贴该命令,并且只需更改进程名称即可。因此,希望他们不要犯错误的名称,因为它们可以留下过程中的单引号。
barlop

9

电源外壳进行救援。

首先,我使用Get-Member来查看Get-Process可能返回的内容:

PowerShell Get-Process ^| Get-Member

然后,我过滤了Get-Process的路径,以确定Spring.Tests正在运行的进程:

PowerShell Get-Process Spring.Tests ^| Format-List Path

导致:

Path : C:\Users\Developer\Versioned\Spring4D\Tests\Bin\DelphiXE\Spring.Tests.exe

这正是我想要的信息。


1
也有WMIC,但powershell更现代,更灵活
barlop

Path一回事命令行?可执行文件的参数呢?@barlop WMI仍然具有许多功能,而这些功能在PowerShell中是不可用的。
jpmc26

@ jpmc26我不需要这些,但是我认为您可以通过StartInfo而不是Path基于stackoverflow.com/questions/1012409/…
Jeroen Wiert Pluimers

@ jpmc26 wmic命令输出的文件路径与powershell ........命令在那里输出的文件路径相同,例如打开Windows计算器并尝试使用calc.exe pastebin.com/raw/TK8xSPPL
barlop

胡萝卜在第一个命令中做什么?
Jared Beach

6

将PowerShell管道传输Get-Process到中Select-Object

Notepad ++的示例命令:

Get-Process notepad++ | Select-Object Path

输出:

Path
----
D:\Notepad++\notepad++.exe

要直接获取输出(Get-Process notepad++).Path(可能存储在变量中)。
nawfal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.