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
wherepracuj dla mnie w Windows 7
where /r c:\ fileNamedodanie / 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 pingponieważ wherejest domyślnie aliasowany do Where-Objectcmdleta, co jest zupełnie inną historią
where.exewyraźnie zamiast where
Tak, Get-Commandznajdzie 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ć Pathwł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.exejawnie, a nie wheredziała dla mnie w PowerShell:
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
where pingdaje mi nic w programie PowerShell.
where.exe.