Показати шлях файлу EXE запущених процесів у командному рядку в Windows


26

Як я можу показати повний шлях файлу EXE кожного запущеного процесу з командного рядка в Windows?

Я спробував список завдань і pslist , але вони не показують повний шлях:

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 і повноважень можуть. це навіть тут або на stackoverflow .. повинно бути в усьому місці ... Насправді я не можу побачити тут повну відповідь, у мене є записка про це. Я перевірю
барлоп

@barlop це смішно: в той час як ви написали свій коментар, я вже експериментував з PowerShell, як я робив деякі інші PowerShell експериментування , а також (:
Йерун Wiert Pluimers

немає необхідності ':(' ваш метод дуже охайний, і ви швидко знайшли його
барлоп

1
Я мушу бути аутистом! Можливо, вам слід покласти ніс у смайлик, щоб це було зрозуміліше ;-)
барлоп

1
@kayleeFrye_onDeck Я маю кращий успіх у виконанні рішень під підвищеним маркером UAC, але дуже хотілося б, щоб там була версія командного рядка technet.microsoft.com/en-us/sysinternals/processexplorer.aspx, яка дозволяє надійно проводити запити під цим маркером.
Jeroen Wiert Pluimers

Відповіді:


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), тому що powerhell настільки бог проклятий повільно !!!
Містер Робот

Будьте дуже уважні до використовуваного форматування. Наприклад, невключення однополюсних позначок у nameполе призведе до цього порушення.
kayleeFrye_onDeck

@kayleeFrye_onDeck добре, враховуючи тривалість команди, я б очікував, що хтось просто скопіює / вставить її і просто змінить назву процесу. Тож сподіваємось, вони не повинні помилятися, пропускаючи одинарні лапки навколо назви процесу, оскільки вони можуть залишити ті, які там є.
барлоп

9

PowerShell на допомогу.

Спочатку я скористався 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, але патрон силових модулів є більш сучасним та гнучким
барлоп

Це Pathте саме, що і командний рядок? А як щодо аргументів виконуваного файлу? @barlop WMI все ще має ряд функцій, які інакше недоступні в PowerShell.
jpmc26

@ Jpmc26 Я не потрібні ті, але я думаю , що ви можете отримати їх через StartInfoзамість Pathзасновані на stackoverflow.com/questions/1012409 / ...
Йерун Wiert Pluimers

@ jpmc26 шляхи до файлів, які виводить команда wmic, такі ж, як файлові шляхи, які виводить команда powershell ........ наприклад, калькулятор відкритих вікон та спробуйте його для calc.exe pastebin.com/raw/TK8xSPPL
барлоп

Що робить морква в першій команді?
Пляж Джаред

6

Труба PowerShell Get-Processв Select-Object.

Приклад команди для Notepad ++:

Get-Process notepad++ | Select-Object Path

Вихід:

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

Щоб отримати вихід безпосередньо, (Get-Process notepad++).Path(можливо, зберігати в змінній).
nawfal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.