ตัวแปรสภาพแวดล้อม WINDIR แก้ไขเป็น% SystemRoot% และไม่ใช่ C: \ windows


6

บางเวลาที่ผ่านมาฉันเปลี่ยนด้วยตนเอง WINDIR ตัวแปรสภาพแวดล้อมเพื่อทดสอบบางอย่างในโปรแกรมดั้งเดิมที่ฉันทำงานด้วย (ควรทำสิ่งนี้บน VM แทนที่จะเป็นเดสก์ทอปของฉัน: / แต่มันสายเกินไป

ดังนั้นด้วยเหตุผลบางอย่างตอนนี้ %WINDIR% ไม่สามารถแก้ไข c: \ windows ได้อีกต่อไป แต่เป็น% SystemRoot% จากบรรทัดคำสั่ง:

echo %WINDIR% outputs %SystemRoot%

และ

echo %SystemRoot% outputs C:\windows

การไม่สามารถแก้ไขปัญหา WINDIR ทำให้ฉันปวดหัวทุกประเภท ฉันลองตั้งค่า WINDIR อย่างชัดเจนถึง c:\windows ในหน้าต่างคอนโซลนั้นมีให้ แต่ก็ไม่มีประโยชน์ ฉันได้ลองเปลี่ยนค่าคีย์รีจิสทรีของ windir ด้วยตนเองที่

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\windier

และ

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment\windir

แต่ก็ยังไม่มีโชค มีใครเคยเห็นพฤติกรรมนี้มาก่อนหรือไม่

ลืมพูดถึงสิ่งนี้อยู่ใน windows 7 Enterprise ed


ไม่ทราบว่าคุณใช้ Windows รุ่นใดหรือเกี่ยวกับรุ่นอื่น ๆ ของ Windows แต่ใน XP มันเป็น Manager \ Environment HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment และ HKCU \ Environment
barlop

สมมติว่าคุณทำเช่น C: \ & gt; reg แบบสอบถาม HKCU \ Environment & lt; ENTER & gt; หรือไม่ใช่ C: \ & gt; reg คิวรี HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ Session Manager \ Environment & lt; ENTER & gt; จากนั้นจะแสดงว่าตัวแปรสภาพแวดล้อมมีการเปลี่ยนแปลงที่ตำแหน่งรีจิสทรีหรือไม่
barlop

1
และสำหรับฉัน, (xp),% windir% ให้ c: \ windows และ% systemroot% ให้ c: \ windows
barlop

ฉันเพิ่งจะติดตั้งระบบปฏิบัติการของคุณใหม่ แน่นอนฉันไม่เห็นปัญหา% WINDIR% ควรจะชี้ไปที่ไดเรกทอรี Windows ใช่ไหม ตัวแปรทั้งสองควรจะชี้ไปที่ C:\Windows
Ramhound

1
คุณเปลี่ยนค่าเป็น C: \ windows และไม่ได้แก้ปัญหาของคุณ? บางทีนี่อาจไม่ใช่สาเหตุของปัญหาของคุณล่ะ?
Langhard

คำตอบ:


6

โปรดตรวจสอบประเภทของค่าที่คุณมี Windir. คุณอาจเปลี่ยนมันโดยไม่ได้ตั้งใจ REG_EXPAND_SZ ไปยัง REG_SZ. คุณต้องทำโดยตรงในรีจิสทรี (การติดตั้ง GUI จะไม่แสดงความแตกต่าง):

เริ่มตัวแก้ไขรีจิสทรีนำทางไป HKEY_LOCAL_MACHINE\system\currentControlSet\Control\Session Manager\Environment.
ตรวจสอบว่า windir มีประเภทของ REG_EXPAND_SZ.
หากไม่ใช่ให้สร้างรายการใหม่เป็น windir REG_EXPAND_SZ %SystemRoot%

ออกจากระบบ / เข้าสู่ระบบและตรวจสอบว่ามันทำงาน


ตกลงนี้แก้ไขได้ ในความคับข้องใจ / ความโง่เขลาของฉันฉันต้องแก้ไขประเภทของ windir reg key เป็น REG_SZ หลังจากสร้างใหม่เป็น REG_EXPAND_SZ แล้วให้ตั้งเป็น% SystemRoot% และเริ่มการทำงานใหม่% windir% ที่แก้ไขแล้วอย่างถูกต้อง ขอบคุณสำหรับสิ่งนี้
prayingpantis

Btw ดูเหมือนว่าฉันจะสร้างคีย์ SystemRoot ในโฟลเดอร์ ControlSet002 เช่นกันเมื่อฉันสร้าง Bugger-up ปัญหานี้หวังว่าจะแก้ปัญหาได้บ้าง ..
prayingpantis

@prayingpantis ดีใจที่ฉันช่วยได้!
wmz

2

แก้ไข! %SystemRoot% เป็นค่าเริ่มต้น . ดังนั้นตัวแปรนี้ถูกตั้งค่าอย่างถูกต้องในระบบของคุณ

enter image description here

คลิกขวาที่ คอมพิวเตอร์ - การตั้งค่า - การตั้งค่าระบบขั้นสูง - ขั้นสูง - ตัวแปรสภาพแวดล้อม . ในส่วนที่สองของหน้าต่างนั้น (ภายใต้ตัวแปรสภาพแวดล้อม) คุณสามารถค้นหาตัวแปรของคุณ windir ชี้ไปที่ %systemroot%. เปลี่ยนเป็น %SystemRoot%ซึ่งเป็นค่าเริ่มต้นและทดสอบว่าคุณยังคงได้รับข้อผิดพลาด


1
ที่จริงแล้วน่าจะเป็นค่าเริ่มต้นคือ C: \ Windows ซึ่งจะเกิดขึ้นเหมือนกับ% systemroot% ฉันไม่คิดว่าค่านี้เป็น% systemroot% ผู้ถามทำให้มันเป็นอย่างนั้นและตอนนี้คุณก็ทำได้ แต่ฉันไม่คิดว่าเป็นเช่นนั้น ดูความคิดเห็นสำหรับคำถามของเขาเช่น จากฉันเกี่ยวกับ xp หรือจาก avirk บน windows 7
barlop

เห็นภาพที่ฉันแนบ (ขออภัยเป็นภาษาเยอรมัน) เมื่อคุณดับเบิลคลิกที่ windir-value ในตัวแปรสภาพแวดล้อมของระบบคุณจะเห็นค่าที่ตั้งไว้เป็นจริง:% SystemRoot% แต่คุณต้องคลิกสองครั้งมิฉะนั้นคุณจะเห็นค่าที่แก้ไขแล้ว
Langhard

1
เฮ้คุณ XP ถูกต้องเช่นกัน .. (ดับเบิลคลิกแสดง% systemroot%) และค้นหารีจิสทรีด้วย reg.exe, แสดง windir
barlop

@Riscie: ฉันเพิ่มเวอร์ชันภาษาอังกฤษสำหรับคุณ;)
Der Hochstapler

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