ใน Linux เรามีคำสั่ง "ซึ่ง" เพื่อค้นหาเส้นทางของการปฏิบัติการ
Windows เทียบเท่ากับอะไร มีคำสั่ง PowerShell สำหรับการทำเช่นนั้น?
ใน Linux เรามีคำสั่ง "ซึ่ง" เพื่อค้นหาเส้นทางของการปฏิบัติการ
Windows เทียบเท่ากับอะไร มีคำสั่ง PowerShell สำหรับการทำเช่นนั้น?
คำตอบ:
Windows บางรุ่น (ฉันคิดว่า Windows 2003 ขึ้นไป) มีคำสั่ง where:
c:\>where ping
C:\Windows\System32\PING.EXE
where
ทำงานกับฉันใน Windows 7
where /r c:\ fileName
เพิ่ม / RC นี้: \ อนุญาตให้ฉันไปทำการค้นหา recursive เริ่มต้นที่รากของไดรฟ์ C โดยใช้ Windows 7 Professional ดูเหมือนว่าจะไม่อยู่ในaccess.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/...
where.exe ping
เพราะwhere
เป็นค่าเริ่มต้นนามแฝงWhere-Object
cmdlet ซึ่งเป็นเรื่องที่แตกต่างอย่างสิ้นเชิง
where.exe
อย่างชัดเจนมากกว่าwhere
ทำงานให้ฉันใน PowerShell
ใช่Get-Command
จะค้นหาคำสั่งทั้งหมดรวมถึงไฟล์เรียกใช้งาน:
PS\> Get-Command ipconfig
หากคุณต้องการ จำกัด คำสั่งให้ใช้งานได้:
PS\> Get-Command -CommandType Application
จะพบอดีตทั้งหมดในเส้นทางของคุณ มีนามแฝงสำหรับการใช้งานแบบโต้ตอบ:
PS\> gcm net* -CommandType Application
ในการรับพา ธ ของไฟล์สั่งการคุณสามารถใช้Path
คุณสมบัติของวัตถุที่ส่งคืนได้ ตัวอย่างเช่น:
PS\> (Get-Command notepad.exe).Path
man Get-Command -full
สำหรับข้อมูลเพิ่มเติมให้เรียกใช้
นอกจาก user10404 แล้วคำสั่ง help จะทำงานกับนามแฝงดังนั้นคุณสามารถใช้ชื่อคำสั่ง (gcm) เดียวกันสำหรับความช่วยเหลือและการใช้แบบโต้ตอบ:
help gcm -Parameter *
# or
man gcm -Par *
หากคุณต้องการทำให้มันสั้นสร้างหนึ่งบรรทัด which.cmd ไฟล์ที่มีเนื้อหา
echo %~$PATH:1
นี่จะค้นหาพารามิเตอร์แรก (% 1) ที่ป้อนไปยังสคริปต์และแสดงเส้นทางแบบเต็มของไฟล์ที่พบ ที่ดีที่จะวางสคริปต์นี้ใน windows 10 คือ% LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd
และคุณได้รับคำสั่งอันไหนในเส้นทาง
c:\>which cmd.exe
c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe
where.exe
อย่างชัดเจนมากกว่าwhere
ทำงานให้ฉันใน PowerShell:
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
where ping
ให้อะไรเลยกับ PowerShell
where.exe
ฉันหมายถึง