อะไรคือ Windows 'เทียบเท่ากับคำสั่ง "ซึ่ง" ใน Unix? มีคำสั่ง PowerShell ที่เทียบเท่าหรือไม่


80

ใน Linux เรามีคำสั่ง "ซึ่ง" เพื่อค้นหาเส้นทางของการปฏิบัติการ
Windows เทียบเท่ากับอะไร มีคำสั่ง PowerShell สำหรับการทำเช่นนั้น?



คำตอบ:


79

Windows บางรุ่น (ฉันคิดว่า Windows 2003 ขึ้นไป) มีคำสั่ง where:

c:\>where ping
C:\Windows\System32\PING.EXE

5
whereทำงานกับฉันใน Windows 7
Nam G VU

6
นี้ใช้งานได้เฉพาะในหน่วย cmd ไม่ใช่ใน PowerShell (จากประสบการณ์ของฉัน)
Thomas

where /r c:\ fileNameเพิ่ม / RC นี้: \ อนุญาตให้ฉันไปทำการค้นหา recursive เริ่มต้นที่รากของไดรฟ์ C โดยใช้ Windows 7 Professional ดูเหมือนว่าจะไม่อยู่ในaccess.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/...
CrandellWS

6
ใน Powershell คุณควรจะพูดwhere.exe pingเพราะwhereเป็นค่าเริ่มต้นนามแฝงWhere-Objectcmdlet ซึ่งเป็นเรื่องที่แตกต่างอย่างสิ้นเชิง
maoizm

where.exeอย่างชัดเจนมากกว่าwhereทำงานให้ฉันใน PowerShell
drkvogel

36

ใช่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สำหรับข้อมูลเพิ่มเติมให้เรียกใช้


2

นอกจาก user10404 แล้วคำสั่ง help จะทำงานกับนามแฝงดังนั้นคุณสามารถใช้ชื่อคำสั่ง (gcm) เดียวกันสำหรับความช่วยเหลือและการใช้แบบโต้ตอบ:

help gcm -Parameter *
# or
man gcm -Par *

2

หากคุณต้องการทำให้มันสั้นสร้างหนึ่งบรรทัด 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

1

where.exeอย่างชัดเจนมากกว่าwhereทำงานให้ฉันใน PowerShell:

PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE

ใช้งานได้กับ Windows 10 1903
Ultrasonic54321

ใน PowerShell ฉันใช้ Windows 10 Pro 1903 และไม่where pingให้อะไรเลยกับ PowerShell
drkvogel

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