Tampilkan jalur file EXE dari proses yang sedang berjalan pada command-line di Windows


26

Bagaimana saya bisa memperlihatkan path file EXE lengkap dari setiap proses yang berjalan dari command-line di Windows?

Saya sudah mencoba tasklist dan pslist , tetapi mereka tidak menunjukkan path lengkap:

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

Memberi:

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

dan

pslist Spring.Tests -x

memberi:

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

Karena Spring.Tests.exebisa di berbagai direktori, saya ingin tahu yang mana yang dieksekusi.


1
oh itu pertanyaan klasik .. selain itu task manager memiliki kolom. Untuk baris perintah, WMIC dan PowerShell dapat. itu bahkan di sini atau di stackoverflow .. harus di semua tempat ... Sebenarnya saya tidak bisa melihatnya sepenuhnya dijawab di sini, saya punya catatan tentang itu .. saya akan memeriksa
barlop

@barlop itu lucu: ketika Anda menulis komentar Anda, saya sudah bereksperimen dengan PowerShell, karena saya telah melakukan beberapa percobaan PowerShell lainnya (:
Jeroen Wiert Pluimers

tidak perlu untuk ':(' metode Anda sangat rapi dan Anda menemukannya dengan cepat
barlop

1
Saya harus autis! Mungkin Anda harus meletakkan hidung di smiley untuk membuatnya lebih jelas ;-)
barlop

1
@ kayleeFrye_onDeck Saya lebih sukses menjalankan solusi di bawah token UAC tinggi, tetapi benar-benar berharap ada versi command-line dari technet.microsoft.com/en-us/sysinternals/processexplorer.aspx yang memungkinkan kueri yang andal di bawah token itu.
Jeroen Wiert Pluimers

Jawaban:


26

Selain baris yang Anda berikan, berikut adalah banyak baris yang (terlepas dari yang kedua) dapat digunakan untuk membuat daftar jalur:

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

ini memiliki keuntungan menjadi cepat, (wmic) karena PowerShell sangat lambat!
Mr.Robot

Sangat memperhatikan format yang digunakan. Misalnya, tidak menyertakan tanda kutip tunggal dalam namebidang akan menyebabkan ini rusak.
kayleeFrye_onDeck

@ KayleeFrye_onDeck baik, mengingat panjangnya perintah saya akan mengharapkan seseorang untuk hanya menyalin / menempelkannya dan hanya mengubah nama proses. Jadi semoga mereka tidak membuat kesalahan dengan kehilangan satu tanda kutip di sekitar nama proses karena mereka dapat meninggalkan yang ada di sana.
barlop

9

PowerShell untuk menyelamatkan.

Pertama saya menggunakan Get-Member untuk melihat apa yang bisa Get-Process dapat kembalikan:

PowerShell Get-Process ^| Get-Member

Lalu saya memfilter Path dari Get-Process untuk mengetahui Spring.Testsproses mana yang sedang berjalan:

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

yang menghasilkan:

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

itulah informasi yang saya inginkan.


1
ada juga WMIC tetapi PowerShell lebih modern dan fleksibel
barlop

Apakah Pathsama dengan baris perintah? Bagaimana dengan argumen yang dapat dieksekusi? @barlop WMI masih memiliki sejumlah fitur yang tidak tersedia di PowerShell.
jpmc26

@ jpmc26 Saya tidak butuh itu, tapi saya pikir Anda bisa mendapatkannya melalui StartInfobukan Pathberdasarkan stackoverflow.com/questions/1012409/...
Jeroen Wiert Pluimers

@ jpmc26 path file yang dihasilkan oleh perintah wmic, sama dengan path file yang diberikan perintah powershell ........ di sana output misalkan buka windows calculator dan coba untuk calc.exe pastebin.com/raw/TK8xSPPL
barlop

Apa yang dilakukan wortel dalam perintah pertama?
Pantai Jared

6

Pipa PowerShell Get-Processke dalam Select-Object.

Contoh perintah untuk Notepad ++:

Get-Process notepad++ | Select-Object Path

Keluaran:

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

Untuk mendapatkan output secara langsung, (Get-Process notepad++).Path(mungkin untuk menyimpan dalam variabel).
nawfal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.