Apa yang setara dengan Windows dari perintah "yang" di Unix? Apakah ada perintah PowerShell yang setara?


Jawaban:


79

Beberapa versi Windows (saya pikir Windows 2003 ke atas) memiliki perintah where:

c:\>where ping
C:\Windows\System32\PING.EXE

5
wherebekerja untuk saya di Windows 7
Nam G VU

6
Ini hanya bekerja di cmd, bukan di PowerShell (menurut pengalaman saya)
Thomas

where /r c:\ fileNamemenambahkan / rc: \ memungkinkan saya untuk melakukan pencarian rekursif mulai dari root drive C menggunakan Windows 7 Professional tampaknya tidak ada di access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
CrandellWS

6
di Powershell Anda harus mengatakan where.exe pingkarena wheresecara default alias Where-Objectcmdlet yang merupakan cerita yang sama sekali berbeda
maoizm

where.exesecara eksplisit daripada wherebekerja untuk saya di PowerShell
drkvogel

36

Ya, Get-Commandakan menemukan semua perintah termasuk yang dapat dieksekusi:

PS\> Get-Command ipconfig

Jika Anda ingin membatasi perintah hanya untuk executable:

PS\> Get-Command -CommandType Application

Akan menemukan semua ongkos di jalan Anda. Ada alias untuk penggunaan interaktif:

PS\> gcm net* -CommandType Application

Untuk mendapatkan jalur yang dapat dieksekusi, Anda bisa menggunakan Pathproperti objek yang dikembalikan. Sebagai contoh:

PS\> (Get-Command notepad.exe).Path

Untuk info lebih lanjut, jalankan man Get-Command -full.


2

Selain user10404, perintah bantuan akan bekerja pada alias, sehingga Anda dapat menggunakan nama perintah yang sama (gcm) untuk bantuan dan penggunaan interaktif:

help gcm -Parameter *
# or
man gcm -Par *

2

Jika Anda ingin membuatnya pendek, buat satu baris file that.cmd dengan konten

echo %~$PATH:1

Ini akan mencari parameter pertama (% 1) diumpankan ke skrip dan menampilkan path lengkap file yang ditemukan. Tempat yang baik untuk meletakkan skrip ini di windows 10 adalah% LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd

Dan Anda mendapatkan perintah Anda di jalur.

c:\>which cmd.exe

c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe

1

where.exesecara eksplisit daripada wherebekerja untuk saya di PowerShell:

PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE

Bekerja pada Windows 10 1903.
Ultrasonic54321

Di PowerShell? Saya menggunakan Windows 10 Pro 1903, dan tidak where pingmemberi saya apa pun di PowerShell.
drkvogel

Maaf saya tidak jelas. Maksud saya where.exe.
Ultrasonic54321
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.