ตัวแปรสภาพแวดล้อมไม่โหลดเมื่อเริ่มต้น


1

ฉันพบปัญหาแปลก ๆ ซึ่งดูเหมือนว่าตัวแปรสภาพแวดล้อมของฉันจะโหลดขึ้นอย่างถูกต้องเมื่อใดก็ตามที่ Windows เริ่มทำงาน นี่เป็นความเจ็บปวดที่จะคิดออกว่าเกิดอะไรขึ้นและฉันก็โชคดีอย่างหมดจด ฉันเริ่มสังเกตเห็นปัญหาเมื่อใดก็ตามที่ฉันจะรีสตาร์ทหรือบูตและลองเปิดใช้งานชุดมาตรฐานของฉัน โดยเฉพาะอย่างยิ่งฉันจะพยายามเปิดใช้ Eclipse และมันจะล้มเหลวในการเริ่มต้นและทำราวกับว่าฉันไม่มี JDK

ขณะแก้ไขปัญหานี้ฉันจะพยายามสะท้อนตัวแปรสภาพแวดล้อมของฉัน (โดยเฉพาะ Path) และฉันจะได้รับสิ่งต่อไปนี้:

C: \ Windows \ System32 & gt; echo% PATH%

C: \ Windows \ system32 \ NV;.

ณ จุดนี้ฉันจะตรวจสอบตัวแปรสภาพแวดล้อมของฉันและพวกเขาจะดูดี หลังจากผ่านไปครู่หนึ่งฉันสังเกตว่าหลังจากฉันทำการตรวจสอบนี้แล้วตัวแปรก็น่าจะดีขึ้น:

C: \ Windows \ System32 & gt; echo% PATH%

C: \ Program Files ... [หลายข้อความ] ... ; C: \ apache-maven-3.0.4 \ bin

จากสิ่งที่ฉันรวบรวมเข้าไปในตัวแปรสภาพแวดล้อมบังคับให้พวกเขาโหลดหรือรีเฟรช ฉันไม่คุ้นเคยกับการที่ตัวแปรสภาวะแวดล้อมถูกโหลดเมื่อเริ่มต้น แต่ดูเหมือนว่ากระบวนการนี้จะไม่ทำงาน นี่คือคอมพิวเตอร์ที่ทำงานของฉันและมีสคริปต์พื้นหลังจำนวนมากที่ทำงานเมื่อเริ่มต้นดังนั้นฉันสงสัยว่านี่อาจเป็นผู้ร้าย

หากใครมีความคิดเกี่ยวกับสิ่งที่อาจเกิดขึ้นที่นี่ฉันจะขอบคุณความคิดเห็น แต่ฉันสงสัยว่าถ้าใครรู้วิธีที่ฉันสามารถบังคับด้วยตนเองรีเฟรชตัวแปรเหล่านี้ในการเริ่มต้น? สคริปต์ขนาดเล็กที่ฉันสามารถเรียกใช้เมื่อเริ่มต้นระบบหรือแม้กระทั่งต่อหน้าแอปพลิเคชันหลักบางตัวเพื่อให้แน่ใจว่าโหลดตัวแปรสภาพแวดล้อมจะดีมาก ขอบคุณล่วงหน้าสำหรับข้อมูลใด ๆ !


คุณอาจจะใช้ setX ในแบตช์ไฟล์เพื่อตั้งค่า PATH ของคุณในแบบที่คุณต้องการ
martineau

คำตอบ:


0

มียูทิลิตีบรรทัดคำสั่งรวมอยู่ในบางรายการ ชุดทรัพยากรของ Windows เรียกว่า setX ที่ช่วยให้คุณสามารถเปลี่ยนแปลงตัวแปรสภาพแวดล้อมอย่างถาวรแทนที่จะเป็นตัวแปรชั่วคราว มันสามารถใช้ในไฟล์แบตช์เพื่อตั้งค่าของคุณ PATH ตัวแปรสภาพแวดล้อมกับสิ่งที่คุณต้องการให้เป็น


0

ฉันดูเหมือนว่าจะมีปัญหานี้อีกครั้งในช่วงหลายเดือนที่ผ่านมาพร้อมกับซอฟต์แวร์ที่ดึงข้อมูลใบอนุญาตจากตัวแปรสิ่งแวดล้อม เราได้ตั้งค่าตัวแปร USERS แต่ด้วยเหตุผลบางอย่างพวกเขาไม่ได้อยู่อย่างสอดคล้องกัน ฉันสิ้นสุดการสร้างตัวแปร SYSTEM ใหม่ (ซึ่งไม่เปลี่ยนแปลงตามผู้ใช้ปัจจุบัน) และเราไม่มีปัญหาใด ๆ ตั้งแต่นั้นมา

หรือคุณสามารถสร้างไฟล์แบตช์ง่าย ๆ และวางไว้ในโฟลเดอร์ StartUp ของคุณ

// ลบไฟล์นั้นตัวแปรที่ตั้งค่าในหน้าต่างคำสั่งจะคงอยู่ในอินสแตนซ์หน้าต่างคำสั่งนั้นเท่านั้น

VBscript เพื่อช่วยเหลือ!

Set wshShell = CreateObject( "WScript.Shell" )
Set wshSystemEnv = wshShell.Environment( "SYSTEM" )

' Display the current value
' comment out to remove dialog box
WScript.Echo "MyVariable=" & wshSystemEnv( "MyVariable" )

wshSystemEnv( "MyVariable" ) = "MyNewValue" 
' WScript.Echo "MyVariable=" & wshSystemEnv( "MyVariable" )

' Delete the environment variable
' uncomment to enable
'wshSystemEnv.Remove( "MyVariable" )

Set wshSystemEnv = Nothing
Set wshShell     = Nothing

บันทึกลงในไฟล์ที่มีนามสกุล ned เป็น * .VBS


ขอบคุณสำหรับคำตอบ. ฉันไม่ได้ลองสิ่งนี้เพราะวิธีการแก้ปัญหาของมาร์ติโนข้างบนนั้นใช้ได้สำหรับฉัน ฉันอาจลองทดสอบในภายหลังเพื่อยืนยันว่าใช้งานได้หรือไม่
ggrigery
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.