Cách dễ dàng hơn để thay đổi các biến môi trường trong Windows 8? [bản sao]


27

Có thể trùng lặp:
PATH và các biến môi trường khác là gì và làm cách nào tôi có thể đặt hoặc sử dụng chúng?

Tôi biết rằng tôi có thể chỉnh sửa các biến môi trường của mình trong windows 8 bằng cách đi đến

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

Nhưng thành thật mà nói, điều này phức tạp đến nực cười.

Có cách nào dễ dàng hơn để thay đổi các biến môi trường trong Windows 8 không?

Chẳng hạn, nếu tôi chỉ muốn thêm thư mục mới vào PATH, thật khó chịu khi phải trải qua tất cả các bước này. Giao diện người dùng cũng tệ, bởi vì thật sự đau đớn khi chỉnh sửa các giá trị biến dài với kiểu nhập văn bản nhỏ.

Yêu cầu 1: Tôi cần các thay đổi để duy trì (ví dụ: khi tôi sử dụng settrong bảng điều khiển, các thay đổi sẽ bị mất khi tôi đóng bảng điều khiển)

Yêu cầu 2: Tôi muốn một giải pháp không liên quan đến việc cài đặt thêm các phần mềm, vì đây là loại sự cố mà tôi vấp phải mỗi khi tôi định cấu hình hộp Windows mới.


Bài đăng hay về chủ đề: windows-commandline.com/set-path-command-line
Royi

Câu trả lời:


32

Bạn đã khám phá lệnh setsetx chưa? Với chúng, bạn có thể đặt một biến liên tục. Hơn nữa, giá trị sẽ được áp dụng ngay lập tức, không phải sau lần đăng nhập tiếp theo.

Ví dụ về SETlệnh windows :

In biến môi trường PATH:

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

Sử dụng lệnh set để đặt biến PATH

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

Lệnh trên chỉ áp dụng cho cửa sổ hiện tại và thay đổi bị mất khi cửa sổ cmd bị đóng.

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

Ví dụ về SETXlệnh windows :

In biến môi trường PATH:

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

Sử dụng setx để đặt biến môi trường:

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

Đóng và mở lại thiết bị đầu cuối cmd, sau đó chạy:

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

Bạn phải cẩn thận với dấu ngoặc kép. Nếu bạn để dấu ngoặc kép đi vào biến đường dẫn của mình, nó có thể phá vỡ thứ gì đó. Tuy nhiên, chúng là cần thiết để chỉ định các phụ lục cho% PATH% ban đầu.


1
Cảm ơn vì tiền hỗ trợ! Tôi đã thử setx PATH=%PATH%;;C:\testnhưng tôi gặp lỗi cú pháp :(
jsalonen

2
Không có dấu = khi sử dụng setx. Làm setx /?
EBGreen

4
Không có đối số "setx" chỉ đặt biến trong ngữ cảnh người dùng. Để đặt trong ngữ cảnh hệ thống, hãy sử dụng "setx / M". Không nhận thức được điều này có thể khiến bạn nhầm lẫn vì "echo% PATH%" sẽ hiển thị các giá trị hệ thống và người dùng được nối.
Vituel

Lưu ý, bạn phải khởi động lại trình bao sau khi bạn thực hiện thay đổi này để nó có hiệu lực.
Doug

lưu ý nhỏ: set path= ~ echo %PATH% [ set pathcũng hiển thị giá trị của PATHEXT]
gerryLowry

10

Đặt biến môi trường trong Windows 8.

Bạn có thể truy cập vào các thiết lập hệ thống tiên tiến bằng cách nhấp chuột phải Computertrong một file-explorervà đi đến properties.

Điều này giống như các phiên bản cũ hơn của windows. Bạn cũng có thể đặt các biến môi trường từ dòng lệnh như được đưa ra ở đây:

PATH và các biến môi trường khác là gì và làm cách nào tôi có thể đặt hoặc sử dụng chúng?


4

Tôi thay đổi chúng trong Powershell. Chẳng hạn, để thêm một thư mục vào biến PATH, hãy mở powershell sau đó:

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

Điều đó sẽ thay đổi nó cho tất cả người dùng. Để thay đổi nó chỉ dành cho người dùng đang chạy lệnh, hãy thay đổi tham số cuối cùng đó thành 'Người dùng'. Hoặc chỉ thay đổi nó tạm thời trong phiên này:

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

tuyệt quá! Làm thế nào để bạn thực hiện phép nối $ env: Path + '; C: \ Temp' tại dấu nhắc lệnh? Các giải pháp Set & Setx ở đây giải thích cách đặt toàn bộ đường dẫn tại dấu nhắc lệnh, nhưng không giải thích làm thế nào để GỬI một cái gì đó vào đường dẫn hiện có.
johny tại sao

Đây là cách để GỬI một cái gì đó vào đường dẫn hiện tại tại một dấu nhắc lệnh. / M được sử dụng để thay đổi biến HỆ THỐNG, thay vì biến USER. Báo giá được sử dụng vì "Thư mục của tôi" chứa khoảng trắng: setx PATH "% PATH%; C: \ Thư mục của tôi" / M
johny tại sao

Chỉ có vấn đề với việc sử dụng dấu nhắc lệnh là giới hạn 255 ký tự và PATH của hệ thống có thể vượt quá mức đó (đặc biệt nếu bạn đang nối thêm nhiều thư mục). Do đó, Powershell là con đường để đi (tôi có thể sai, nhưng tôi tin rằng không có giới hạn số lượng nhân vật với Powershell).
johny tại sao

3

Nó khá dễ dàng trên dòng lệnh:

set MyVar=HelloWorld

(để đến dòng lệnh, nhập cmdtừ màn hình bắt đầu>.)

Để xem một biến:

echo %MyVar%

Sử dụng setxđể đặt vĩnh viễn một biến. Cú pháp hơi khác nhau. Hãy thử tìm kiếm ở đây , hoặc có rất nhiều trang web khác sẽ cho bạn biết cách sử dụng nó.


Vâng cảm ơn người đàn ông tôi đã biết điều này rồi, nhưng vấn đề là nếu bạn thay đổi theo cách này thì họ không kiên trì - tức là khi tôi đóng và mở lại dòng lệnh, các biến được hoàn nguyên về mặc định. Cập nhật câu hỏi của tôi để phản ánh điều này - xin lỗi.
jsalonen

Bạn có biết nếu tôi có thể làm điều setđó sẽ tiếp tục?
jsalonen

1
setx dành cho những thay đổi vĩnh viễn
EBGreen

Có cách nào để đặt biến chỉ cho đến lần khởi động lại tiếp theo không? Mặt khác, nếu tôi sử dụng set từ một chương trình khác (giả sử lệnh OS từ Python hoặc MATLAB), liệu nó có giữ được khi phiên của chương trình được mở không?
Royi
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.