วิธีที่ง่ายกว่าในการเปลี่ยนตัวแปรสภาพแวดล้อมใน Windows 8? [ซ้ำ]


27

การทำซ้ำที่เป็นไปได้:
PATH และตัวแปรสภาพแวดล้อมอื่น ๆ คืออะไรและฉันจะตั้งค่าหรือใช้งานได้อย่างไร

ฉันรู้ว่าฉันสามารถแก้ไขตัวแปรสภาพแวดล้อมใน windows 8 ได้โดยไปที่

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

แต่จริงๆแล้วมันซับซ้อนอย่างน่าขัน

มีวิธีที่ง่ายกว่าในการเปลี่ยนตัวแปรสภาพแวดล้อมใน Windows 8 หรือไม่?

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

ข้อกำหนดที่ 1: ฉันต้องการการเปลี่ยนแปลงเพื่อคงอยู่ (เช่นเมื่อฉันใช้setในคอนโซลการเปลี่ยนแปลงจะหายไปเมื่อฉันปิดคอนโซล)

ข้อกำหนดที่ 2: ฉันต้องการโซลูชันที่ไม่เกี่ยวข้องกับการติดตั้งซอฟต์แวร์เพิ่มเติมเนื่องจากนี่เป็นปัญหาที่ฉันพบเจอทุกครั้งที่กำหนดค่ากล่อง Windows ใหม่


โพสต์ที่ดีเกี่ยวกับหัวข้อ: windows-commandline.com/set-path-command-line
Royi

คำตอบ:


32

คุณสำรวจคำสั่งsetและsetx แล้วหรือยัง? คุณสามารถตั้งค่าตัวแปรถาวรได้ นอกจากนี้ค่าจะถูกนำไปใช้ทันทีไม่ใช่หลังจากการเข้าสู่ระบบครั้งต่อไป

ตัวอย่างSETคำสั่งwindows :

พิมพ์ตัวแปรสภาพแวดล้อม PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

ใช้คำสั่ง set เพื่อตั้งค่าตัวแปร PATH

C:\Users\Charity>set PATH=%PATH%;C:\epicpath
C:\Users\Charity>

คำสั่งดังกล่าวใช้กับหน้าต่างปัจจุบันเท่านั้นและการเปลี่ยนแปลงจะหายไปเมื่อปิดหน้าต่าง cmd

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

ตัวอย่างSETXคำสั่งwindows :

พิมพ์ตัวแปรสภาพแวดล้อม PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

ใช้ setx เพื่อตั้งค่าตัวแปรสภาพแวดล้อม:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

ปิดและเปิดเทอร์มินัล cmd ใหม่จากนั้นเรียกใช้:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

คุณต้องระวังด้วยเครื่องหมายคำพูดคู่ ถ้าคุณปล่อยให้คำพูดเข้าไปในตัวแปรพา ธ ของคุณมันอาจจะแตก อย่างไรก็ตามพวกเขาจำเป็นสำหรับการระบุภาคผนวกไปยัง% PATH ต้นฉบับ


1
ขอบคุณสำหรับทิป! ฉันพยายามsetx PATH=%PATH%;;C:\testแต่ฉันได้รับข้อผิดพลาดทางไวยากรณ์ :(
jsalonen

2
ไม่มีเครื่องหมาย = เมื่อใช้ setx ทำ setx / หรือไม่
EBGreen

4
ไม่มี args "setx" ตั้งค่าตัวแปรในบริบทผู้ใช้เท่านั้น ในการตั้งค่าในบริบทของระบบให้ใช้ "setx / M" การไม่ทราบว่าสิ่งนี้อาจทำให้คุณสับสนเนื่องจาก "echo% PATH%" จะแสดงค่าของระบบและค่าผู้ใช้ที่ต่อกัน
Vituel

หมายเหตุคุณต้องรีสตาร์ทเชลล์หลังจากคุณทำการเปลี่ยนแปลงเพื่อให้การเปลี่ยนแปลงมีผล
ดั๊ก

หมายเหตุเล็กน้อย: set path= ~ echo %PATH% [ set pathแสดงค่าด้วยPATHEXT]
gerryLowry

10

ตั้งค่าตัวแปรสภาพแวดล้อมใน Windows 8

คุณสามารถเข้าถึงการตั้งค่าโดยคลิกขวาระบบขั้นสูงComputerในและไปfile-explorerproperties

นี่เป็นเหมือนกับ windows รุ่นเก่ากว่า คุณยังสามารถตั้งค่าตัวแปรสภาพแวดล้อมจากบรรทัดคำสั่งตามที่กำหนดที่นี่:

PATH และตัวแปรสภาพแวดล้อมอื่น ๆ คืออะไรและฉันจะตั้งค่าหรือใช้งานได้อย่างไร


4

ฉันเปลี่ยนพวกเขาใน Powershell ตัวอย่างเช่นการเพิ่มโฟลเดอร์ในตัวแปร PATH ให้เปิด PowerShell แล้ว:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

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

$env:Path += ';C:\temp'

ที่ดี! คุณจะทำ $ env: Path + '; C: \ Temp' การต่อข้อมูลกันที่พรอมต์คำสั่งได้อย่างไร โซลูชัน Set & Setx ที่นี่อธิบายวิธีตั้งค่าพา ธ ทั้งหมดที่พร้อมต์คำสั่ง แต่ไม่มีใครอธิบายวิธีผนวกบางสิ่งเข้ากับพา ธ ที่มีอยู่
johny ทำไม

ต่อไปนี้เป็นวิธีผนวกบางสิ่งกับเส้นทางที่มีอยู่ที่พร้อมท์คำสั่ง / M ถูกใช้เพื่อแก้ไขตัวแปร SYSTEM แทนที่จะเป็นตัวแปร USER เครื่องหมายคำพูดใช้ตั้งแต่ "My Folder" มีช่องว่าง: setx PATH "% PATH%; C: \ My Folder" / M
johny ทำไม

เฉพาะปัญหาของการใช้พรอมต์คำสั่งคือ จำกัด จำนวนอักขระ 255 ตัวและเส้นทางของระบบน่าจะเกินนั้น (โดยเฉพาะถ้าคุณต่อท้ายไดเรกทอรีเพิ่มเติม) ด้วยเหตุนี้ Powershell จึงเป็นวิธีที่จะไป (ฉันอาจผิด แต่ฉันเชื่อว่าไม่มีข้อ จำกัด จำนวนตัวละครกับ Powershell)
johny ทำไม

3

มันค่อนข้างง่ายในบรรทัดคำสั่ง:

set MyVar=HelloWorld

(เพื่อไปที่บรรทัดคำสั่งพิมพ์cmdจากหน้าจอเริ่มต้น>.)

วิธีดูตัวแปร:

echo %MyVar%

ใช้setxเพื่อตั้งค่าตัวแปรอย่างถาวร ไวยากรณ์แตกต่างกันเล็กน้อย ลองดูที่นี่หรือมีเว็บไซต์อื่นอีกมากมายที่จะบอกวิธีการใช้งาน


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

คุณรู้หรือไม่ว่าฉันสามารถทำสิ่งsetนั้นได้
jsalonen

1
setx สำหรับการเปลี่ยนแปลงถาวร
EBGreen

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