PowerShell, Unix `which` komutuna eşittir?


69

PowerShell, whichçoğu (hepsi değilse) Unix kabuklarında bulunan komuta eşdeğer mi?

Komut satırından kaçtığım bir şeyin yerini bilmek istediğim birkaç kez var. Unix'te ben sadece yapıyorum which <command>ve bana söylüyor. PowerShell'de bir eşdeğer bulamıyorum.

Yanıtlar:


71

Bu sorulmuş ve cevaplanmış Yığın Taşması: PowerShell'de 'Nix' hangi 'komutunun eşdeğeri?

Bir zamanlar yaptığım ilk takma ad, PowerShell'deki profilimi özelleştirmeye başladım.

Komutu alan yeni takma adlar

Bunu profilinize eklemek için şunu yazın:

"` nNew-Alias ​​hangi komut almak "| eklenti $ profil

Son satırın başındaki `n, yeni bir satır olarak başlamasını sağlamaktır.


35

PowerShell 3.0’dan itibaren

(Get-Command cmd).Path

Ayrıca, vanilya Get-Command'a göre avantajı da vardır, System.Stringbu yüzden geri döndüğünüz gibi temiz * nixy tek satırlık bir çıktı alırsınız. Gcm takma adını kullanarak onu 11 karaktere kadar indirebiliriz.

(gcm cmd).Path

4
Birden Get-Commandfazla sonuç bulursa, bir dizi döndürür. Ek olarak, bulduğu komut çalıştırılabilir değilse Path, undefined ( $null) öğesidir . Bu, buradaki cevabı, ağır modifikasyon olmadan genel kullanım için pratik değildir. Her iki durumda da iyi bir örnek için deneyin Get-Command where.
jpmc26

1
Bu, aslında sorunun cevabı whereolmayan Powershell'de takma adların nasıl ayarlanacağını öğretmek yerine * NIX komutunun Powershell eşdeğeri olduğunu size anlattığı için kabul edilen cevap olmalıdır .
mastazi

3
@mastazi: Fakat bu, zsh 'ler ile karşılaştırıldığında bir gerileme olan, yapıtaşları için başarısız olur which. ( whereBu arada, bir aslında , Windows farklı şeyler bir dizi birini yapabilirsiniz yarar kabaca boyunca bir komuta aramaya yaklaşan PATH.) Ayrıca, orada hiçbir şey isteneni yapmak açıklar bir cevap yanlış ve ayrıca bir başka, bunun üzerine inşa edilmiş biraz daha fazla şey.
SamB

7

Ayrıca 2008'de cevaplandı: Windows komut satırında 'hangisi' eşdeğeri var mı?

whereBir Kaynak Seti taktıysanız komutu deneyin .

Cevabın en önemli kısımları:

Windows Server 2003 ve sonraki sürümleri WHERE, yalnızca yürütülebilir komutlarla değil, tüm dosya türleriyle eşleşse de, bazılarını yapan komutu sağlar.

[Kesik]

Windows PowerShell'de yazmanız gerekir where.exe.


3
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.