it-swarm.asia

PowerShell setara dengan perintah Unix `yang`?

Apakah PowerShell memiliki yang setara dengan perintah which yang ditemukan di sebagian besar (jika tidak semua) shell Unix?

Ada beberapa kali saya ingin tahu lokasi sesuatu yang saya jalankan dari baris perintah. Di Unix saya hanya melakukan which <command>, dan itu memberitahu saya. Saya tidak dapat menemukan yang setara di PowerShell.

66
Herms

Ini ditanyakan dan dijawab pada Stack Overflow: Setara dengan * Nix 'perintah' di PowerShell?

Alias ​​pertama yang saya buat setelah saya mulai menyesuaikan profil saya di PowerShell adalah 'yang'.

Alias ​​baru yang mendapatkan perintah

Untuk menambahkan ini ke profil Anda, ketikkan ini:

"` nBaru-Alias ​​yang menerima perintah "| add-content $ profil

`N pada awal baris terakhir adalah untuk memastikannya akan dimulai sebagai baris baru.

69
nagul

Pada PowerShell 3.0, Anda bisa melakukannya

(Get-Command cmd).Path

Yang juga memiliki kelebihan dibandingkan Vanilla Get-Command mengembalikan System.String sehingga Anda mendapatkan output baris tunggal * nixy yang bersih seperti yang biasa Anda lakukan. Dengan menggunakan alias gcm, kita dapat menurunkannya hingga 11 karakter.

(gcm cmd).Path
32
FLGMwt

Juga menjawab pada 2008: Apakah ada yang setara dengan 'yang' pada baris perintah Windows?

Coba perintah where jika Anda telah menginstal Resource Kit.

Bagian terpenting dari jawabannya:

Windows Server 2003 dan yang lebih baru menyediakan perintah WHERE yang melakukan sebagian dari apa yang dilakukannya, meskipun cocok dengan semua jenis file, bukan hanya perintah yang dapat dieksekusi.

[menggunting]

Di Windows PowerShell Anda harus mengetik where.exe.

6
Anonymous
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}
3
hshen