แก้ไข: ฉันควรจะเพิ่มถ้าคุณไม่สามารถใช้คำสั่ง WHERE จากพรอมต์คำสั่งตรวจสอบตัวแปร PATH ของคุณ (เพียงใช้คำสั่ง "path") ตรวจสอบให้แน่ใจว่า C: \ Windows \ System32 อยู่ในพา ธ ของคุณ นั่นคือที่ที่ "where.exe" ตั้งอยู่
คำสั่งที่คุณกำลังมองหาอยู่ที่ไหน! ที่เป็นเหมือนการข้ามระหว่างเชลล์ UNIX ในตัว "ซึ่ง" และคำสั่ง "ค้นหา" ซึ่งจะใช้งานได้กับทั้งคำสั่งที่รันได้และไฟล์ปกติ
มันค่อนข้างซับซ้อนกว่าทั้งสองอย่างนี้ถึงแม้ว่าโดยทั่วไปแล้วจะง่าย
WHERE <file>
จะทำงาน.
มันแตกต่างจากคำสั่ง "ค้นหา" เนื่องจากไม่ได้มองผ่านระบบไฟล์ทั้งหมด แต่พฤติกรรมเริ่มต้นคือการค้นหาไฟล์ในสองตำแหน่งแทน:
- ไดเรกทอรีปัจจุบัน
- ไดเร็กทอรีทั้งหมดในตัวแปร PATH
ดังนั้นคำสั่งใด ๆ ที่คุณสามารถเรียกใช้โดยตรงจากพรอมต์คำสั่งโดยไม่ต้องระบุไดเรกทอรีจะพบได้โดยคำสั่ง WHERE (เพราะคำสั่งใด ๆ เช่นนั้นมีอยู่แล้วในรายการตัวแปร PATH)
หากคุณต้องการค้นหาเฉพาะในตัวแปรพา ธ คำสั่งคุณสามารถใช้:
WHERE "$path:<search text>"
หากในอีกทางหนึ่งคุณต้องการค้นหาสำเนาทั้งหมดของไฟล์ในแผนผังไดเรกทอรีคุณสามารถใช้:
WHERE /R <Top Level Directory> <search text>
ท้ายที่สุด WHERE จะค้นหาคำสั่งและไฟล์ใด ๆ ที่มีส่วนขยายจากตัวแปร PATHEXT โดยไม่รวมส่วนขยาย ไฟล์อื่นทั้งหมดจะต้องมีการระบุอย่างแน่นอนหรือกับตัวแทน
ยกตัวอย่างไฟล์ "dxdiag.exe" และ "dxdiagn.dll" หมายเหตุคำสั่งต่อไปนี้และผลลัพธ์:
WHERE /R C:\Windows dxdiag
C:\Windows\System32\dxdiag.exe
C:\Windows\SysWOW64\dxdiag.exe
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiag.exe
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiag.exe
จะประสบความสำเร็จในการส่งกลับ "dxdiag.exe" ทุกรุ่นเพราะ ".exe" เป็นส่วนขยายหนึ่งในตัวแปร PATHEXT (หมายเหตุ: "WHERE dxdiag" จะทำงานได้เช่นกันเนื่องจาก C: \ Windows \ System32 อยู่ในตัวแปร PATH)
WHERE /R C:\Windows dxdiagn
ในทางกลับกันไม่สามารถส่งคืนผลลัพธ์ใด ๆ ได้เนื่องจาก ".dll" ไม่ได้อยู่ใน PATHEXT
ในกรณีนี้ดูผลลัพธ์ที่เพิ่มไวด์การ์ดให้เรา:
WHERE /R C:\Windows dxdiagn*
C:\Windows\System32\dxdiagn.dll
C:\Windows\System32\en-US\dxdiagn.dll.mui
C:\Windows\SysWOW64\dxdiagn.dll
C:\Windows\SysWOW64\en-US\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_daccd04369b09c70\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiagn.dll
C:\Windows\WinSxS\x86_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_7eae34bfb1532b3a\dxdiagn.dll.mui
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiagn.dll
มันจะส่งคืนdxdiagn.dll ทุกรุ่นสำเร็จ
สำหรับข้อมูลเพิ่มเติมให้ใช้ "WHERE /?" หวังว่านี่จะช่วยได้!