Co to jest odpowiednik systemu Windows „polecenia” w systemie Unix dla systemu Windows? Czy istnieje równoważne polecenie PowerShell?

Odpowiedzi:

79

Niektóre wersje systemu Windows (myślę, że Windows 2003 i nowsze wersje) mają polecenie where:

c:\>where ping
C:\Windows\System32\PING.EXE
Randy Levy
źródło
5
wherepracuj dla mnie w Windows 7
Nam G VU
6
Działa to tylko w cmd, a nie w PowerShell (z mojego doświadczenia)
Thomas,
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/...
CrandellWS
6
w Powershell powinieneś powiedzieć, where.exe pingponieważ wherejest domyślnie aliasowany do Where-Objectcmdleta, co jest zupełnie inną historią
maoizm
where.exewyraźnie zamiast where
działać
36

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.

użytkownik10404
źródło
2

Oprócz user10404 komenda help będzie działać na aliasach, więc możesz użyć tej samej nazwy komendy (gcm) do pomocy i do użytku interaktywnego:

help gcm -Parameter *
# or
man gcm -Par *
Yzorg
źródło
2

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
Manu
źródło
1

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
drkvogel
źródło
Działa w systemie Windows 10 1903.
Ultrasonic54321
W PowerShell? Korzystam z systemu Windows 10 Pro 1903 i nie where pingdaje mi nic w programie PowerShell.
drkvogel
Przepraszam, byłem niejasny. Miałem na myśli where.exe.
Ultrasonic54321