PowerShell เทียบเท่ากับคำสั่ง Unix `ซึ่ง`?


69

PowerShell มีเทียบเท่ากับwhichคำสั่งที่พบในเชลล์ Unix ส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) หรือไม่?

มีหลายครั้งที่ฉันต้องการทราบตำแหน่งของสิ่งที่ฉันกำลังเรียกใช้จากบรรทัดคำสั่ง ใน Unix ฉันเพิ่งทำwhich <command>และมันบอกฉัน ฉันไม่พบสิ่งที่เทียบเท่าใน PowerShell

คำตอบ:


71

สิ่งนี้ถูกถามและตอบใน Stack Overflow: เทียบเท่ากับ * Nix 'คำสั่ง' ใน PowerShell?

นามแฝงแรกที่ฉันทำเมื่อฉันเริ่มกำหนดโปรไฟล์ของฉันเองใน PowerShell คือ 'ซึ่ง'

ใหม่นามแฝงซึ่งรับคำสั่ง

หากต้องการเพิ่มสิ่งนี้ลงในโปรไฟล์ของคุณให้พิมพ์สิ่งนี้:

"` nNew-Alias ​​ที่ได้รับคำสั่ง "| โปรไฟล์ $ เพิ่มเนื้อหา

`n ที่จุดเริ่มต้นของบรรทัดสุดท้ายคือเพื่อให้แน่ใจว่ามันจะเริ่มต้นเป็นบรรทัดใหม่


35

ในฐานะของ PowerShell 3.0 คุณสามารถทำได้

(Get-Command cmd).Path

ซึ่งยังมีประโยชน์เหนือวานิลลา Get-Command ของการส่งคืน a System.Stringเพื่อให้คุณรับเอาต์พุตบรรทัดเดียวที่สะอาดเหมือนที่คุณคุ้นเคย เมื่อใช้นามแฝง gcm เราสามารถลดได้ถึง 11 ตัว

(gcm cmd).Path

4
หากGet-Commandพบผลลัพธ์หลายรายการจะส่งคืนอาร์เรย์ นอกจากนี้หากคำสั่งที่พบไม่ใช่ไฟล์ที่เรียกใช้งานPathจะไม่ถูกกำหนด ( $null) นี่ทำให้คำตอบที่นี่ทำไม่ได้สำหรับการใช้งานทั่วไปโดยไม่มีการดัดแปลงหนัก Get-Command whereสำหรับตัวอย่างที่ดีของทั้งสองกรณีเหล่านี้พยายาม
jpmc26

1
นี่ควรเป็นคำตอบที่ได้รับการยอมรับเพราะจริง ๆ แล้วบอกคุณว่าอะไรคือ Powershell ที่เทียบเท่ากับคำสั่ง * NIX whereแทนที่จะสอนคุณถึงวิธีการตั้งชื่อแทนใน Powershell ซึ่งไม่ใช่ชื่อของคำถาม
mastazi

3
@mastazi: แต่ที่ล้มเหลวสำหรับ builtins ซึ่งเป็นถดถอยเมื่อเทียบกับเช่นzshwhich 's ( whereโดยแท้ที่จริงแล้วยูทิลิตี้ของWindowsที่สามารถทำสิ่งต่าง ๆ ได้จำนวนหนึ่งซึ่งประมาณคร่าวๆเพื่อค้นหาคำสั่งตามPATH) นอกจากนี้ยังไม่มีอะไรผิดปกติกับคำตอบที่อธิบายวิธีการทำสิ่งที่ถูกถามและอีกสิ่งหนึ่งที่เกี่ยวข้องกับการสร้างขึ้นเล็กน้อย
SamB

7

ตอบด้วยในปี 2008: มี 'เทียบเท่า' ในบรรทัดคำสั่งของ Windows หรือไม่

ลองใช้whereคำสั่งหากคุณติดตั้ง Resource Kit

ส่วนที่สำคัญที่สุดของคำตอบ:

Windows Server 2003 และใหม่กว่าให้WHEREคำสั่งที่ทำบางสิ่งที่ทำแม้ว่าจะตรงกับไฟล์ทุกประเภทไม่ใช่แค่คำสั่งที่ใช้งานได้

[snip]

ใน Windows PowerShell where.exeคุณต้องพิมพ์


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.