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

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.


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 *

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

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.