Sepertinya saya tidak dapat menemukan apa pun tentang Powershell yang setara dengan where
perintah dari cmd
. Haruskah saya hanya menyebutnya dari cmd
atau ada sesuatu yang lebih elegan di PS?
62
Sepertinya saya tidak dapat menemukan apa pun tentang Powershell yang setara dengan where
perintah dari cmd
. Haruskah saya hanya menyebutnya dari cmd
atau ada sesuatu yang lebih elegan di PS?
Jawaban:
Gunakan
Get-Command
commandlet yang melewatinya nama yang dapat dieksekusi. Ini mengisi properti Path dari objek yang dikembalikan (dari tipe ApplicationInfo ) dengan jalur yang sepenuhnya diselesaikan ke executable.sumber
gcm
ganti mengetik seluruhGet-Command
kata setiap kaligcm notepad
telah bekerja sempurna untuk saya ketika saya hanya ingin melihat file mana yang saya panggil.Jika Anda hanya ingin memiliki fungsi yang sama tanpa menggunakan cmd, Anda dapat menelepon
where.exe
dari PowerShell, selamaC:\Windows\System32
ada di jalur Anda. Perintahwhere
(tanpa .exe) adalah aliasWhere-Object
, jadi tentukan saja nama lengkapnya.sumber
Get-ChildItem C:\SomeDir -Recurse *.dll
Itulah yang dilakukan where.exe lama ... apakah ada fungsi yang lebih spesifik yang ingin Anda tiru?
Sunting: Sebagai tanggapan terhadap komentar Joshua ... oh, Anda juga ingin mencari variabel lingkungan PATH Anda? Tidak masalah.
sumber
oh, you want to search your PATH environment variables too?
Um, ya, itulah seluruh titik untukwhere
, jika tidak, anda bisa menggunakandir
. Der.:-P
where
bukancmd
perintah bawaan. Ini adalah aplikasi mandiri (where.exe
), jadi PowerShell secara tegas tidak "membutuhkan pengganti".Jadi mengapa tidak
where
bekerja di PowerShell? Tampaknya tidak melakukan apa-apa:Secara default
where
alias ke cmdlet PS bawaan .Ya, itu bagus untuk diketahui, tetapi apakah ada cara untuk menghindari panggilan
where-object
saat mencoba meneleponwhere.exe
?Jawabannya iya.
Pilihan 1
Panggil
where.exe
dengan ekstensi. (Ini adalah cara praktis untuk mengatasi masalah prioritas aliasing dan ekstensi file lainnya.)pilihan 2
Hapus alias.
Catatan Samping
Jawaban zdan mengusulkan penggunaan
Get-Command
sebagai alternatif. Meskipun sedikit lebih verbose (bahkan ketika menggunakangcm
alias default ), ia memiliki fungsi yang lebih kaya daripadawhere.exe
. Jika digunakan dalam skrip, perhatikan perbedaan halus antara keduanya. Misalnyawhere.exe
mengembalikan semua kecocokan, sedangkanGet-Command
mengembalikan hanya hasil pertama kecuali Anda memasukkan-TotalCount
parameter opsional .Dan akhirnya, jika Anda menghapus
where
alias default , Anda mungkin juga mempertimbangkan untuk menetapkan kembali itu sebagai alias untukGet-Command
. (Tapi ini mungkin akan bermanfaat bagi yang meragukan.)sumber