Hiển thị đường dẫn tệp EXE của các tiến trình đang chạy trên dòng lệnh trong Windows


26

Làm cách nào tôi có thể hiển thị đường dẫn tệp EXE đầy đủ của mỗi quy trình đang chạy từ dòng lệnh trong Windows?

Tôi đã thử danh sách tác vụpslist , nhưng chúng không hiển thị đường dẫn đầy đủ:

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

Cung cấp:

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

cho:

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.execó thể trong các thư mục khác nhau, tôi muốn biết cái nào đã được thực thi.


1
oh đó là một câu hỏi kinh điển .. bên cạnh quản lý tác vụ có một cột. Đối với dòng lệnh, WMIC và powershell có thể. nó thậm chí ở đây hoặc trên stackoverflow .. phải ở khắp mọi nơi ... Thật ra tôi không thể thấy nó được trả lời đầy đủ ở đây, tôi có một lưu ý về nó .. tôi sẽ kiểm tra
barlop

@barlop thật buồn cười: trong khi bạn viết bình luận của mình, tôi đã thử nghiệm với PowerShell, vì tôi cũng đang thực hiện một số thử nghiệm PowerShell khác (:
Jeroen Wiert Pluimers

không cần ':(' phương pháp của bạn rất gọn gàng và bạn đã tìm thấy nó nhanh chóng
barlop

1
Tôi phải tự kỷ! Có lẽ bạn nên đặt một cái mũi vào mặt cười để làm cho nó rõ ràng hơn ;-)
barlop

1
@kayleeFrye_onDeck Tôi thành công hơn khi chạy các giải pháp theo mã thông báo UAC nâng cao, nhưng thực sự mong muốn có một phiên bản dòng lệnh của technet.microsoft.com/en-us/sysi INTERNals / prosexsexplorer.aspx cho phép truy vấn đáng tin cậy theo mã thông báo đó.
Jeroen Wiert Pluimers

Câu trả lời:


26

Ngoài dòng bạn đã đưa ra, đây là một loạt các dòng (ngoài dòng thứ hai) có thể được sử dụng để liệt kê các đường dẫn:

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

Điều này có lợi thế là nhanh, (wmic) bởi vì powershell rất thần quá chậm !!!
Mr.Robot

Hãy rất chú ý đến định dạng được sử dụng. Ví dụ: không bao gồm các dấu ngoặc đơn trong nametrường sẽ khiến điều này bị phá vỡ.
kayleeFrye_onDeck

@kayleeFrye_onDeck, với độ dài của lệnh tôi sẽ mong ai đó chỉ sao chép / dán nó bằng mọi cách và chỉ cần thay đổi tên của quy trình. Vì vậy, hy vọng họ không nên phạm sai lầm khi thiếu các trích dẫn đơn xung quanh tên quy trình vì họ có thể để lại những cái ở đó.
barlop

9

PowerShell để giải cứu.

Đầu tiên tôi sử dụng Get-Member để xem những gì Get-Process có thể trả về:

PowerShell Get-Process ^| Get-Member

Sau đó, tôi đã lọc Đường dẫn từ Get-Process để tìm ra Spring.Teststiến trình nào đang chạy:

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

dẫn đến:

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

đó chính xác là thông tin tôi muốn


1
cũng có WMIC nhưng powershell hiện đại và linh hoạt hơn
barlop

Pathđiều tương tự như dòng lệnh? Điều gì về các đối số để thực thi? @barlop WMI vẫn có một số tính năng không khả dụng trong PowerShell.
jpmc26

@ jpmc26 Tôi không cần những thứ đó, nhưng tôi nghĩ bạn có thể lấy chúng qua StartInfothay vì Pathdựa trên stackoverflow.com/questions/1012409/
Thẻ

@ jpmc26 các đường dẫn tệp mà lệnh wmic xuất ra, giống như các đường dẫn tệp mà lệnh powershell ........ có đầu ra, ví dụ: mở máy tính windows và thử nó cho calc.exe pastebin.com/raw/TK8xSPPL
barlop

Cà rốt làm gì trong lệnh đầu tiên?
Bãi biển Jared

6

Ống PowerShell Get-Processvào Select-Object.

Lệnh ví dụ cho Notepad ++:

Get-Process notepad++ | Select-Object Path

Đầu ra:

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

Để có được đầu ra trực tiếp, (Get-Process notepad++).Path(có thể lưu trữ trong một biến).
nawfal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.