มีปัญหาแน่นอนกับการขยายตัวแปรสภาพแวดล้อมภายในตัวแปร PATH เมื่อตัวแปรขยายไปยังพา ธ ที่มีช่องว่าง
เราสร้างตัวแปรระดับระบบของเราเองเช่น "OUR_ROOT = c: \ MyRoot" จากนั้นนำไปใช้ในระบบ PATH เช่น "PATH =;% OUR_ROOT% \ bin;" และที่ได้รับการขยายอย่างถูกต้องถึง "PATH =; c: \ MyRoot \ bin;" จนถึงไม่มีปัญหา
แต่ใน Windows 7 (32 บิต) ฉันมีผลิตภัณฑ์ที่ติดตั้งตัวเองและสร้างตัวแปรสภาพแวดล้อมระบบเช่นนี้:
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
และมันเพิ่มลงในตัวแปร PATH ของระบบ:
PATH=<other path elements>;%STUDIO_BIN%;<more path elements>
แต่ค่า PATH ที่แสดงใน CMD มี "% STUDIO_BIN%;" ไม่ใช่เส้นทางแบบขยาย ค่าใน My Computer> Properties> Advanced> Env.Vars ยังคงไม่ถูกขยายเช่นกัน นี่หมายความว่าฉันไม่สามารถเรียกใช้โปรแกรมที่ต้องใช้ DLL ในไดเรกทอรีนั้น
เพียงแค่เปลี่ยน STUDIO_BIN (ผ่านคอมพิวเตอร์ของฉัน> คุณสมบัติ> ขั้นสูง ... > Env Vars) เป็นชื่อที่ไม่มีช่องว่างในตัว:
STUDIO_BIN=C:\ProductName\bin
จากนั้นรีสตาร์ทหน้าต่าง CMD ตอนนี้ PATH จะเป็นดังนี้:
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
อีกวิธีคือแก้ไขตัวแปรระบบที่คุณใช้ใน PATH อย่างเพียงพอโดยใช้ My Computer> คุณสมบัติ> ขั้นสูง ... > ตัวแปรสภาพแวดล้อม ฉันพยายามเพิ่มตัวละครและลบมันออกเพื่อทำการ 'เปลี่ยน' จากนั้นก็ตกลงออกเริ่มต้นพรอมต์ CMD ใหม่และ PATH ไม่ได้ขยายอย่างถูกต้อง จากนั้นฉันพยายามลบส่วนหนึ่งของเส้นทางดังนั้นมันจึงเป็น
STUDIO_BIN=C:\Program Files\Company Name
(ละเว้น "ชื่อผลิตภัณฑ์ 10.4") และแท้จริงและดูเถิดพรอมต์ CMD ถัดไปจะแสดง PATH พร้อมกับ STUDIO_BIN ที่ถูกขยายอย่างถูกต้อง!
แปลกมากถ้าฉันกลับไปและเพิ่ม "ชื่อผลิตภัณฑ์ 10.4" ลงใน STUDIO_BIN (รวมถึงช่องว่างทั้งหมดที่เคยอยู่ที่นั่นก่อนที่ฉันจะเริ่มเล่นด้วย) และ PATH ก็ขยายอย่างถูกต้อง
เห็นได้ชัดว่ามีการเปลี่ยนแปลงเนื้อหาของมันมากพอตัวแปร PATH ได้รับการประมวลผลพิเศษบางอย่างในกล่องโต้ตอบ Environment Variables ที่อนุญาตให้ทำงานได้ การประมวลผลที่ไม่ได้ทำเมื่อมีการเพิ่มตัวแปรโดยโปรแกรมติดตั้งของผลิตภัณฑ์ (ซึ่งอาจเป็นเพียงแค่ปรับเปลี่ยน PATH ในรีจิสทรีโดยตรง)
ฉันเกือบจะคิดว่านี่เป็นปัญหาของ XP เช่นกัน มันเพิ่งปรากฏใหม่สำหรับฉันใน Windows 7 ขณะที่ฉันกำลังรวบรวมเครื่องพัฒนาใหม่ เห็นได้ชัดว่า Microsoft ไม่ได้รับการแก้ไข
เห็นได้ชัดว่าแม้แต่ตัวแปรที่ MS กำหนดเช่น% ProgramFiles% จะไม่ขยายอย่างถูกต้องใน PATH
หน้านี้ให้คำตอบที่เป็นไปได้หากคุณตั้งค่า PATH ผ่านทางบรรทัดคำสั่งหรือแบตช์ (แนบคำสั่งทั้งหมดหลังจาก SET ในเครื่องหมายอัญประกาศ) ฉันไม่รู้ว่าตัวติดตั้งใดที่ผลิตภัณฑ์ที่ฉันติดตั้งใช้เพื่อตั้งค่าตัวแปรสภาพแวดล้อม
ดังนั้นเพื่อสรุปคุณสามารถ:
เปลี่ยนพา ธ (และย้ายไฟล์ที่เกี่ยวข้องทั้งหมด) ไปยังพา ธ ที่ไม่มีช่องว่างหรือ
แก้ไขตัวแปรที่ล้มเหลวในการขยายในไดอะล็อก Environment Variables (เปลี่ยนให้เพียงพอเพื่อให้สามารถประมวลผลได้อย่างถูกต้อง - ฉันไม่แน่ใจว่ามีมากเพียงพอ)