Jak mogę wyświetlić pełną ścieżkę pliku EXE każdego uruchomionego procesu z wiersza polecenia w systemie Windows?
Próbowałem tasklist i pslist , ale nie pokazują pełnej ścieżki:
tasklist /FI "ImageName eq Spring.Tests.exe" /v /fo List
Daje:
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
i
pslist Spring.Tests -x
daje:
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
Ponieważ Spring.Tests.exe
mogą znajdować się w różnych katalogach, chcę wiedzieć, który został wykonany.
Odpowiedzi:
Oprócz linii, którą podałeś, oto kilka linii, które (oprócz drugiej) można wykorzystać do wyświetlenia ścieżek:
źródło
name
polu spowoduje, że to się zepsuje.PowerShell na ratunek.
Najpierw użyłem Get-Member, aby zobaczyć, co może zwrócić Get-Process :
Następnie odfiltrowałem ścieżkę z Get-Process, aby dowiedzieć się, które
Spring.Tests
procesy były uruchomione:w wyniku czego:
dokładnie taką informację chciałem.
źródło
Path
to samo, co wiersz poleceń? A co z argumentami pliku wykonywalnego? @barlop WMI nadal ma wiele funkcji, które w innym przypadku byłyby niedostępne w PowerShell.StartInfo
zamiast naPath
podstawie stackoverflow.com/questions/1012409/...Włóż PowerShell
Get-Process
doSelect-Object
.Przykładowe polecenie dla Notepad ++:
Wydajność:
źródło
(Get-Process notepad++).Path
(może przechowywać w zmiennej).