ทุกอย่างที่ผู้แอบอ้าง Twistyกล่าวในคำตอบนั้นถูกต้อง แนวคิดที่ว่าตัวแปรเส้นทางผู้ใช้ถูกต่อท้ายได้รับการเน้นและฉันเชื่อว่าผลที่ตามมาของความแตกต่างนั้นต้องมีการรักษาเพิ่มเติม
Path =% Path% (ระบบ); % พา ธ % (ผู้ใช้)
เมื่อคุณรันโปรแกรมปฏิบัติการ (หรือสคริปต์ที่ปฏิบัติการใด ๆ เช่น.bat
, .vbs
ฯลฯ ) คุณไม่จำเป็นต้องให้เส้นทางที่มีคุณสมบัติครบถ้วน
ตัวอย่างเช่นหากต้องการเรียกใช้java
คุณสามารถพิมพ์ใด ๆ ต่อไปนี้:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
ตัวอย่างแรกใช้เส้นทางที่ผ่านการรับรองโดยสมบูรณ์ สิ่งนี้จะใช้เวอร์ชันของ Java ที่เส้นทางที่แน่นอนเสมอ
ตัวอย่างที่สองจะผ่านแต่ละไดเรกทอรีใน%Path%
ตัวแปรสภาพแวดล้อมค้นหาไฟล์เรียกทำงานjava.exe
ได้ มันจะเรียกใช้สิ่งแรกที่พบและหยุดการค้นหา หากมีสองไฟล์ตั้งชื่อjava.exe
บางแห่งในไฟล์%Path%
จะใช้เฉพาะไฟล์แรกที่พบ
%Path%
ตัวอย่างที่สามเช่นสองจะย้ำกว่าไดเรกทอรีที่ระบุไว้ใน นอกจากนี้เนื่องจากไม่มีการระบุนามสกุลไฟล์รายการของนามสกุลไฟล์ที่เรียกทำงานได้จะถูกผนวกเข้ากับชื่อของไฟล์ตามลำดับที่ระบุใน%PATHEXT%
ตัวแปรสภาพแวดล้อม หากมีหลายไฟล์ชื่อjava.com
, java.exe
และjava.bat
อื่น ๆ ในไฟล์%Path%
จะใช้เฉพาะไฟล์แรกที่พบ
คุณสามารถดูรายการส่วนขยายพา ธ ที่สามารถเรียกใช้งานได้บนระบบของคุณโดยสร้างไฟล์แบตช์ต่อไปนี้:
@echo off
echo %PATHEXT%
pause
บนเครื่องของฉันเหล่านี้คือ:
.COM; .EXE; ค้างคาว; .cmd; .vbs; .VBE; .js; .JSE; .WSF; .WSH; .MSC; .py
ทั้งหมดนี้หมายความว่าอย่างไร
ในทางตรงกันข้ามกับตัวแปรสภาพแวดล้อมอื่น ๆ เส้นทางผู้ใช้ไม่อนุญาตให้คุณแทนที่เส้นทางของระบบ ตรงกันข้ามคือกรณี จากตัวอย่างด้านบนมีหลายกรณีที่คุณอาจจะต้องเปลี่ยนจาวารุ่นเริ่มต้น อย่างไรก็ตามหากมีรุ่น Java อยู่ในรายการเส้นทางของระบบนั่นคือรุ่นที่จะต้องพบก่อนเสมอเนื่องจากเส้นทางนั้นถูกค้นหาตามลำดับจากซ้ายไปขวาและเส้นทางของผู้ใช้จะถูกผนวกเข้าทางด้านขวา - ด้านที่มีพา ธ ของระบบด้านซ้าย
ฉันจะทำอะไรได้บ้าง
หากคุณไม่สามารถเข้าถึงตัวแปรสภาพแวดล้อมระบบคุณไม่สามารถแทนที่โปรแกรมเริ่มต้นบนเส้นทางของระบบโดยใช้เส้นทางผู้ใช้ (อันที่จริงแล้วต้องเป็นเช่นนี้หรือบางโปรแกรมจะหยุดทำงานอย่างถูกต้องและจะเปิดระบบของคุณเพื่อแก้ไขปัญหาโดยซอฟต์แวร์ที่เป็นอันตรายไม่มีใครต้องการสิ่งนั้น)
คุณต้องใช้เส้นทางที่ผ่านการรับรองโดยสมบูรณ์หากคุณต้องใช้เวอร์ชันที่ระบุ