ความแตกต่างระหว่าง
SETX
และSET
คืออะไร?
ตามความเข้าใจของฉัน:
ทั้งสองถูกใช้เพื่อตั้งค่าตัวแปรสภาพแวดล้อม
SETX
สำหรับตัวแปรผู้ใช้
SET
สำหรับตัวแปรเชลล์
ความแตกต่างระหว่าง
SETX
และSET
คืออะไร?
ตามความเข้าใจของฉัน:
ทั้งสองถูกใช้เพื่อตั้งค่าตัวแปรสภาพแวดล้อม
SETX
สำหรับตัวแปรผู้ใช้
SET
สำหรับตัวแปรเชลล์
คำตอบ:
ฉันกลัวว่ามันไม่ง่ายอย่างนั้น ตัวแปรสภาพแวดล้อมไม่ได้ถูก จำกัด โดยขอบเขตตามที่คุณแนะนำ แต่คุณถูกต้องว่าอายุการใช้งานของค่าในตัวแปรนั้นแตกต่างกันเมื่อเปรียบเทียบคำกริยา
Set
ปรับเปลี่ยนค่าสภาพแวดล้อมของเชลล์ (หน้าต่าง) ในปัจจุบันและการเปลี่ยนแปลงจะพร้อมใช้งานทันที แต่เป็นชั่วคราว การเปลี่ยนแปลงจะไม่ส่งผลกระทบต่อเชลล์อื่น ๆ ที่กำลังทำงานอยู่และทันทีที่คุณปิดเชลล์ค่าใหม่จะหายไปจนกว่าจะถึงเวลาที่คุณรันการตั้งค่าอีกครั้ง
setx
แก้ไขค่าอย่างถาวรซึ่งมีผลต่อเชลล์ในอนาคตทั้งหมด แต่ไม่ได้แก้ไขสภาพแวดล้อมของเชลล์ที่รันอยู่แล้ว คุณต้องออกจากเชลล์และเปิดใหม่ก่อนที่การเปลี่ยนแปลงจะพร้อมใช้งาน แต่ค่าจะยังคงถูกแก้ไขจนกว่าคุณจะเปลี่ยนอีกครั้ง
ดูตัวอย่างได้ที่นี่: http://batcheero.blogspot.com/2008/02/set-and-setx.html
ที่จริงเราสามารถตั้งค่าตัวแปรได้สามขอบเขต:
1. เชลล์
2. ผู้ใช้
3. ระบบ (เครื่องจักร) หรือทั่วโลก
C:\Users\977246>set /?
Displays, sets, or removes cmd.exe environment variables.
SET [variable=[string]]
variable Specifies the environment-variable name.
string Specifies a series of characters to assign to the variable.
Type SET without parameters to display the current environment variables.
C:\Users\977246>setx /?
SetX has three ways of working:
Syntax 1:
SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
Syntax 2:
SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
Syntax 3:
SETX [/S system [/U [domain\]user [/P [password]]]]
/F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]
Description:
Creates or modifies environment variables in the user or system
environment. Can set variables based on arguments, regkeys or
file input.
To remove the variable set value to empty string as follows
Example: setx path ""
ในตัวแปรผู้ใช้ GUI และระบบสภาพแวดล้อม
การเพิ่มจุดที่ผู้ตอบคำถามคนอื่นพลาด
ในการตั้งค่าตัวแปรสภาพแวดล้อมของระบบแทนตัวแปรสภาพแวดล้อมของผู้ใช้เราเพียงแค่ต้องใช้ตัวเลือก / m ในคำสั่ง setx และเรียกใช้จากพรอมต์คำสั่งผู้ดูแลระบบ
setx variable value /m
ตัวอย่าง: เปิดพรอมต์คำสั่งในฐานะผู้ดูแลและเรียกใช้
setx Path "%Path%;C:\Users\User\Libs" /m
คำอธิบาย: คำสั่งดังกล่าวจะผนวก "C: \ Users \ User \ Libs" ให้กับตัวแปรเส้นทางที่มีอยู่แล้ว (ตัวแปรสภาพแวดล้อมของระบบ)
หากไม่มีอาร์กิวเมนต์/ mมันจะทำการเปลี่ยนแปลงหรือสร้างตัวแปรเส้นทางระดับผู้ใช้เท่านั้น
จากคู่มือผู้ใช้ setx
/ M ระบุว่าตัวแปรควรถูกตั้งค่าในสภาพแวดล้อมระบบ (HKEY_LOCAL_MACHINE) ค่าเริ่มต้นคือการตั้งค่าตัวแปรภายใต้สภาพแวดล้อม HKEY_CURRENT_USER
SET /?
และSETX /?
- ที่ควรให้ความคิดกับคุณ