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.