Thiết lập và nhận các biến môi trường Windows từ dấu nhắc lệnh?


220

Tôi muốn đặt một biến môi trường từ dấu nhắc lệnh và sau đó có thể truy cập nó trên toàn cầu (ví dụ: tôi sẽ thấy nó bằng cách đi tới Hệ thống -> Biến môi trường).

Khi tôi sử dụng lệnh set, nó không thể truy cập được trong một phiên cmd mới.

set NEWVAR=SOMETHING
echo %NEWVAR%

Câu hỏi liên quan:


1
giá trị biến setx - sau đó khởi động lại Dấu nhắc lệnh
Andrew

Câu trả lời:


252

Để làm cho biến môi trường có thể truy cập trên toàn cầu, bạn cần đặt nó trong sổ đăng ký. Như bạn đã nhận ra chỉ bằng cách sử dụng:

đặt NEWVAR = SOMETHING

bạn chỉ cần đặt nó trong không gian quy trình hiện tại.

Theo trang này, bạn có thể sử dụng setxlệnh:

setx NEWVAR SOMETHING

setxđược tích hợp vào Windows 7, nhưng đối với các phiên bản cũ hơn chỉ có thể khả dụng nếu bạn cài đặt Bộ tài nguyên Windows


4
Lưu ý rằng bạn cần chỉ định hạn ngạch, ví dụ: setx JAVA_HOME "C:\Program Files\Java\jdk1.7.0_45"sẽ hoạt động. Nhưng setx JAVA_HOME C:\Program Files\Java\jdk1.7.0_45sẽ cung cấp cho bạn lỗi cú pháp
MD. Mohiuddin Ahmed

5
@ MD.MohiuddinAhmed Đó là vì có khoảng trống trên đường dẫn.
ChrisF

36

Chúng ta cũng có thể sử dụng "setx var biến / M" để đặt var thành mức biến môi trường hệ thống thay vì mức người dùng.

Lưu ý: Lệnh này nên được chạy với tư cách quản trị viên.


10
setx program "C:\Program Files" /M

/ M để đặt mức biến môi trường hệ thống thay vì mức người dùng như @Minh Chau trả lời

Kiểm tra nhập mô tả hình ảnh ở đây

Dòng lệnh RESTART (nếu bạn không khởi động lại dòng lệnh, biến môi trường sẽ không hoạt động)

nhập mô tả hình ảnh ở đây


Điều này trùng lặp một câu trả lời khác và không thêm nội dung mới. Vui lòng không đăng câu trả lời trừ khi bạn thực sự có điều gì đó mới để đóng góp.
DavidPostill

8
@DavidPostill câu trả lời của tôi có một cái mới là chúng ta cần khởi động lại dòng lệnh. Tôi nghĩ nó quan trọng
Phan Văn Linh

2

Bạn có thể sử dụng setx env var [/M]như đã đề cập ở trên. Nếu nó không có hiệu lực, bạn có thể sử dụng refreshenvđể làm mới các biến môi trường. Bạn không phải khởi động lại máy tính, explorer.exe hoặc dấu nhắc lệnh của bạn để làm điều đó.

Chỉnh sửa: làm mới một cách tự nhiên không có trong Windows một cách tự nhiên, vì vậy đây là nguồn: https://pastebin.com/1fJqA0pT
Lưu dưới dạng RefreshEnv.cmd và đặt nó vào một thư mục có trong các biến môi trường PATH của bạn


1
+1 để đề cập đến 'refreshenv' - Tôi chưa bao giờ bắt gặp điều đó trước đây!
Francis Norton

1

Các biến hệ thống có thể được đặt thông qua CMD và registry For ex. reg truy vấn "HKEY_LOCAL_MACHINE \ HỆ THỐNG \ CurrentControlset \ Control \ Trình quản lý phiên \ Môi trường" / v PATH

Tất cả các mã CMD và biến hệ thống thường được sử dụng được đưa ra ở đây: Đặt biến môi trường hệ thống Windows bằng cách sử dụng CMD .

Mở CMD và gõ Set

Bạn sẽ nhận được tất cả các giá trị của biến hệ thống.

Nhập bộ java để biết chi tiết đường dẫn của java được cài đặt trên hệ điều hành cửa sổ của bạn.


Xin vui lòng đọc lại câu hỏi một cách cẩn thận. Câu trả lời của bạn không trả lời câu hỏi ban đầu.
DavidPostill

Nó gần, mặc dù. Sử dụng REG ADD có thể thực hiện được điều này?
TUYỆT VỜI

0

Tôi muốn thêm rằng nếu bạn đang sử dụng tham số / s với setx để đặt biến môi trường trên máy tính từ xa, dịch vụ "Remote Registry" cần được chạy trên máy đích nếu không bạn sẽ nhận được "LRI: hoạt động được chỉ định không thể được hoàn thành. "

(Tôi đã yêu cầu Microsoft cập nhật bài viết TechNet của họ trên setx để đưa thông tin này vào.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.