Sự khác biệt giữa
SETX
và làSET
gì?
Theo hiểu biết của tôi:
Cả hai được sử dụng để đặt các biến môi trường
SETX
là cho các biến người dùng.
SET
dành cho các biến shell.
Sự khác biệt giữa
SETX
và làSET
gì?
Theo hiểu biết của tôi:
Cả hai được sử dụng để đặt các biến môi trường
SETX
là cho các biến người dùng.
SET
dành cho các biến shell.
Câu trả lời:
Tôi sợ nó không đơn giản như vậy. Các biến môi trường không bị giới hạn bởi phạm vi, như bạn đề xuất, nhưng bạn đúng rằng thời gian tồn tại của giá trị trong biến là khác nhau khi so sánh các động từ.
Set
sửa đổi các giá trị môi trường của shell hiện tại (cửa sổ) và thay đổi có sẵn ngay lập tức, nhưng nó chỉ là tạm thời. Thay đổi sẽ không ảnh hưởng đến các shell khác đang chạy và ngay sau khi bạn đóng shell, giá trị mới sẽ bị mất cho đến khi bạn chạy lại thiết lập.
setx
sửa đổi giá trị vĩnh viễn, ảnh hưởng đến tất cả các shell trong tương lai, nhưng không sửa đổi môi trường của các shell đã chạy. Bạn phải thoát khỏi trình bao và mở lại nó trước khi thay đổi có sẵn, nhưng giá trị sẽ vẫn được sửa đổi cho đến khi bạn thay đổi lại.
Xem ở đây để biết ví dụ: http://batcheero.blogspot.com/2008/02/set-and-setx.html
Trên thực tế, chúng ta có thể đặt biến ở ba phạm vi:
1. Shell
2. Người dùng
3. Hệ thống (Máy) hoặc Toàn cầu
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 ""
Trong GUI người dùng và các biến môi trường hệ thống.
Thêm một điểm đã bị bỏ qua bởi những người trả lời khác.
Để đặt Biến môi trường hệ thống thay vì biến môi trường người dùng, chúng ta chỉ cần sử dụng tùy chọn / m trong lệnh setx và chạy nó từ Dấu nhắc lệnh (Quản trị viên) nâng cao.
setx variable value /m
Ví dụ: Mở Command prompt với tư cách quản trị viên và chạy
setx Path "%Path%;C:\Users\User\Libs" /m
Giải thích: Lệnh trên sẽ nối "C: \ Users \ User \ Libs" vào Biến đường dẫn đã tồn tại (Biến môi trường hệ thống).
Nếu không có đối số / m , nó sẽ thực hiện thay đổi hoặc chỉ tạo biến Đường dẫn cấp độ người dùng.
Từ hướng dẫn sử dụng setx,
/ M Chỉ định rằng biến phải được đặt trong môi trường toàn hệ thống (HKEY_LOCAL_MACHINE). Mặc định là đặt biến trong môi trường HKEY_CURRENT_USER.
SET /?
vàSETX /?
- điều đó sẽ cung cấp cho bạn một số ý tưởng.