ทำการค้นหาที่เรียกใช้งานได้ยกเว้น PATH


3

ฉันเปิด cmd (Windows 7) และฉันพิมพ์ "java.exe" และระบบค้นหาไฟล์ที่ปฏิบัติการได้ที่ c: \ program files \ java \ jre6 \ bin

อย่างไรก็ตามโฟลเดอร์นี้ไม่ได้อยู่ในเส้นทาง มีกลไกอื่นใดที่ส่งผลต่อการค้นหา exe?


มีตัวแปรใด ๆ เช่น JRE_HOME, JAVA__HOME ในพา ธ ของคุณ, มันสามารถดำเนินการได้
ukanth

คำตอบ:


14

เริ่มตั้งแต่ Vista ขึ้นไปตอนนี้ Windows จะมียูทิลิตีที่เรียกว่า where. โปรแกรมนี้ทำงานเหมือนกับที่คุณคาดหวังยูนิกซ์คู่กับ (ฉันดีใจที่พวกเขาเพิ่มมัน!)

การใช้งาน:

C:\>where java
C:\Windows\System32\java.exe

แม้แต่สิ่งที่ดีกว่าเกี่ยวกับ where คือมันจะแสดงไฟล์ที่เรียกใช้งานทั้งหมดที่พบในพา ธ ของคุณดังนั้นหากคุณมี java.exe ใน C: \ Windows มันจะแสดงขึ้นมา ภายใต้ ที่ \ System32 \ one

แก้ไข

ฉันคิดว่าฉันยังมีตัวเลือกสำหรับผู้ใช้ XP ที่ต้องการใช้งานโดยไม่มีเครื่องมือของบุคคลที่สาม Raymond Chen เขียนสคริปต์คำสั่ง โปรแกรม "whereis" ขนาด 90 ไบต์ . มันเป็นหนึ่งในสายการบินที่ดีที่ประสบความสำเร็จในงานเดียวกัน!

@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i

บันทึกสคริปต์ด้านบนในไฟล์. bat หรือ. cmd และคุณสามารถเปิดใช้งานได้จากบรรทัดคำสั่งด้วยชื่อไฟล์เป็นอาร์กิวเมนต์ มันจะทำงานเหมือนที่คุณคาดไว้! (โปรดทราบว่าหากใช้เวอร์ชันสคริปต์ให้ปล่อยส่วนขยายออกไปส่วนขยายนั้นจะค้นหาส่วนขยายที่ปฏิบัติการได้ทั้งหมดให้คุณ)


2
+1 ชอบวิธีแก้ปัญหาดั้งเดิมเสมอ
Phoshi

+1; ไม่เคยรู้เกี่ยวกับคำสั่งนี้มาก่อน! (และฉันเคยคิดว่าฉันค่อนข้างมีประโยชน์กับบรรทัดคำสั่ง!)
John Rudy

+1 สำหรับใหม่กับฉัน มันทำงานคล้ายกับ find คำสั่งใน Unix (ซึ่งแตกต่างจาก find คำสั่งใน DOS หรือ Windows) คุณทำได้ where -r \users\username\documents *.xl* ตัวอย่างเช่น.
Dennis Williamson

+1 ขอบคุณสำหรับสคริปต์ XP - ฉันบันทึกเป็น where.bat และมันใช้งานได้เหมือน vista! :)
Bohemian

* ระวังเทียบเท่าคือ "ซึ่ง" หนึ่ง "ที่ไหน" เป็นสคริปต์เกี่ยวกับ redhat บางทีสำหรับคนที่ลืมว่ามันคือ 'ซึ่ง' บน * ระวัง
barlop

2

มีสำเนาของ java.exe ใน c: \ windows \ system32 (ซึ่งเป็นเส้นทางที่กำหนดไว้ในตัวแปรสภาพแวดล้อม) นั่นคือสิ่งที่เกิดขึ้นเมื่อคุณพิมพ์ java.exe ที่พรอมต์คำสั่งไม่ใช่อันใน c: \ program files \ java \ jre6 \ bin


คุณไม่พูด ฉันลองใช้ 'which.exe' เพื่อค้นหา แต่ก็ไม่ได้
ripper234

ทำงานได้สำหรับฉัน คุณใช้อันไหน
quack quixote

2
ของฉันซึ่งเป็น cygwin ของที่และที่ใด java ซึ่ง java.exe ใน / system32 ดังนั้นสิ่งที่คุณกำลังใช้อาจถูกอาคม
Phoshi

gnuwin32 อันไหน
ripper234

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