W Linuksie mamy komendę „która”, aby znaleźć ścieżkę do pliku wykonywalnego.
Co to jest odpowiednik systemu Windows? Czy jest do tego jakieś polecenie PowerShell?
W Linuksie mamy komendę „która”, aby znaleźć ścieżkę do pliku wykonywalnego.
Co to jest odpowiednik systemu Windows? Czy jest do tego jakieś polecenie PowerShell?
Odpowiedzi:
Niektóre wersje systemu Windows (myślę, że Windows 2003 i nowsze wersje) mają polecenie where:
c:\>where ping
C:\Windows\System32\PING.EXE
where
pracuj dla mnie w Windows 7
where /r c:\ fileName
dodanie / rc: \ pozwoliło mi przeprowadzić wyszukiwanie rekurencyjne, poczynając od katalogu głównego dysku C przy użyciu Windows 7 Professional. Wygląda na to, że nie ma go w access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/...
where.exe ping
ponieważ where
jest domyślnie aliasowany do Where-Object
cmdleta, co jest zupełnie inną historią
where.exe
wyraźnie zamiast where
Tak, Get-Command
znajdzie wszystkie polecenia, w tym pliki wykonywalne:
PS\> Get-Command ipconfig
Jeśli chcesz ograniczyć polecenia tylko do plików wykonywalnych:
PS\> Get-Command -CommandType Application
Znajdzie wszystkich byłych na twojej ścieżce. Istnieje alias do użytku interaktywnego:
PS\> gcm net* -CommandType Application
Aby uzyskać ścieżkę do pliku wykonywalnego, możesz użyć Path
właściwości zwróconego obiektu. Na przykład:
PS\> (Get-Command notepad.exe).Path
Aby uzyskać więcej informacji, uruchom man Get-Command -full
.
Jeśli chcesz go skrócić, utwórz plik z jednym wierszem what.cmd z zawartością
echo %~$PATH:1
Spowoduje to przeszukanie pierwszego parametru (% 1) dostarczonego do skryptu i wyświetlenie pełnej ścieżki znalezionego pliku. Dobrym miejscem do umieszczenia tego skryptu w systemie Windows 10 jest% LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd
I dostaniesz swoje polecenie na ścieżce.
c:\>which cmd.exe
c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe
where.exe
jawnie, a nie where
działa dla mnie w PowerShell:
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
where ping
daje mi nic w programie PowerShell.
where.exe
.