2009-02-21 30 views

Trả lời

237

Dưới đây là nơi chúng được lưu trữ trên XP thông qua Server 2012 R2:

biến tài

HKEY_CURRENT_USER\Environment 

System Variables

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 
+2

Hãy nhớ khởi động lại hệ thống của bạn để thực hiện thay đổi. – 0x6B6F77616C74

+15

Bạn không cần phải khởi động lại. Chỉ cần giết Explorer.exe và đưa nó trở lại còn sống. Đó là quy trình gốc cho ví dụ: cmd.exe (khi bắt đầu từ menu Bắt đầu) –

+2

Làm thế nào về các quy trình khác - như IIS? Tôi đoán Explorer.exe không phải là cha mẹ cho những người, do đó, một khởi động lại sẽ là cần thiết? – Colin

17

Tôi nhận ra điều này là cũ nhưng có một hiệu quả hơn cách thực hiện điều này trong Windows 7. SETX được cài đặt theo mặc định và hỗ trợ kết nối với các hệ thống khác.

Để sửa đổi một hệ thống từ xa biến môi trường toàn cầu, bạn sẽ sử dụng

setx /m /s HOSTNAME-GOES-HERE VariableNameGoesHere VariableValueGoesHere 

này không yêu cầu khởi động lại thám hiểm.

+0

Hãy cẩn thận với điều này, như setx cắt ngắn mọi thứ sau 1024 charachters !!! https://superuser.com/questions/387619/overcoming-the-1024-character-limit-with-setx – WalyKu

4

tôi luôn luôn có vấn đề với điều đó, tôi đã thực hiện một getx.bat:

::getx %envvar% [\m] 
::reads envvar from user enviroment variable and stores it in getxvalue variable 
::with \m read system enviroment 

@SETLOCAL EnableDelayedExpansion 
@echo OFF 

@set l_regpath="HKEY_CURRENT_USER\Environment" 
@if "\m"=="%2" set l_regpath="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" 

::REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH /t REG_SZ /f /d "%PATH%" 
::@REG QUERY %l_regpath% /v %1 /S 

@FOR /F "tokens=*" %%A IN ('REG QUERY %l_regpath% /v %1 /S') DO (
@ set l_a=%%A 
@ if NOT "!l_a!"=="!l_a: =!" set l_line=!l_a! 
) 

::delimiter is four spaces change it to tab \t 
@set l_line=!l_line! 
@set l_line=%l_line: = % 

@set getxvalue= 

@FOR /F "tokens=3* delims= " %%A IN ("%l_line%") DO (
@ set getxvalue=%%A 
) 
@set getxvalue=!getxvalue! 
@echo %getxvalue% > getxfile.tmp.txt 
@ENDLOCAL 

::we already used tab as delimiter 
@FOR /F "delims= " %%A IN (getxfile.tmp.txt) DO (
    @set getxvalue=%%A 
) 
@del getxfile.tmp.txt 

@echo ON 
0

cmd:

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" 
reg query HKEY_CURRENT_USER\Environment 

Powershell:

gi "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" 
gi HKCU:\Environment 

Powershell/NET: (xem https://msdn.microsoft.com/en-us/library/system.environmentvariabletarget(v=vs.110).aspx)

[System.Environment]::GetEnvironmentVariables([System.EnvironmentVariableTarget]::Machine) 
[System.Environment]::GetEnvironmentVariables([System.EnvironmentVariableTarget]::User) 
Các vấn đề liên quan