cmd.exe에서 (시스템 전체) 환경 변수 설정 또는 수정


13

명령 줄에서 환경 변수를 추가 및 / 또는 수정 및 / 또는 삭제하는 편리한 방법을 찾고 있습니다. 특히 cmd.exe에 몇 가지 변수를 추가해야 할 경우가 있습니다.

누군가가 %PATH%변수 를 수정하는 (즉 : 새 디렉토리를 추가하는) 비 GUI 방식을 보여 주면 감사 할 것 입니다.

cmd세션 기간 동안 만이 아니라 변경 사항이 영구적이어야합니다 .


1
나는 당신이 발견 할 한 가지 문제는 영구적시스템 전체 환경 변수 를 변경하면 사용자 세션이 수정 된 값을 사용하기 위해 로그 아웃 / 로그인 (또는 재부팅)이 필요하다는 것입니다.
quack quixote

답변:


8

reg 명령으로 레지스트리 변수를 직접 조작하는 구식 방법은 돈이었습니다. 방법은 다음과 같습니다.

reg add HKCU\Environment /v PATH /d "%addonpath%;%path%" /f

다음과 같은 apath.bat라는 한 줄 스크립트에 넣습니다.

@echo off
reg add HKCU\Environment /v PATH /d "%~dp0;%path%" /f

그런 다음 스크립트를 호출 할 때 추가 할 새 디렉토리의 경로 만 입력하면됩니다.

예 : apath.bat % addonpath %

Hinch가 옳지 만. Vista 이상을 사용하는 경우 가장 좋은 방법은 레지스트리를 직접 조작 할 수있는 reg 명령을 사용하여 레지스트리를 직접 조작 할 위험없이 환경 변수를 전파 할 수 있도록 설계된 SETX 명령을 사용하는 것입니다. ENV 변수를 즉시 사용할 수있을 정도로 조작하십시오.


이 명령을 다시 시작해야합니까?
Juzer Ali

아니요, 그러나 새로운 (cmd) 프로세스를 사용해야합니다.
mike

1
나에게 다시 시작해야합니까? 왜? 저는 Windows XP, sp3에 있습니다.
Changwang Zhang

15

setx를 사용할 수 있습니다.

사용자 변수 :

SETX PATH "%PATH%;C:\MyDir"

시스템 변수 :

SETX PATH "%PATH%;C:\MyDir" /M

Vista 이후 SETX를 사용할 수 있다고 생각하지만 XP를 사용하고 있습니다.
René Nyffenegger

Vista 시스템에서 setx.exe를 복사하여 벗어날 수 있습니다. 아마 작동하지 않을 수도 있지만 아닐 수도 있습니다.
quack quixote

2
SETX는 Windows Server 2003 용 리소스 도구의 일부입니다. system32 디렉토리 또는 경로에 추가 된 다른 항목 (chicken-egg!) 만 추가하면됩니다.
paradroid

사용자가 아닌 시스템 변수를 수정할 수 있도록 / M 부분이 필요합니다. 감사!
Andrei Sfat

지정된 명령이 잘못되었습니다. 왜? Windows는 실제로 시스템 전체와 사용자별로 두 가지 PATH 값을 유지 관리합니다. 을 입력하면 다음 echo %PATH%과 같이 결합 된 것을 볼 수 있습니다 <system path>;<user path>. 따라서 첫 번째 명령은 시스템 경로의 현재 항목을 사용자 경로에 표시하고 (나쁘지 않음) 두 번째 명령은 사용자 경로의 현재 항목을 시스템 경로에 표시합니다 (허용되지 않음).
Sasha

1

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun레지스트리 키를 사용하여 배치 파일을 가리키면 비전 설정 대화 상자를 탐색하지 않고 반영구적으로 변경할 수 있습니다.


내가 아는 한 cmd.exe (/ d 플래그없이)의 후속 호출에만 영향을 미치지 만 전체 시스템 또는 다른 (다음에 호출되는) 프로세스에는 영향을 미치지 않습니다.
René Nyffenegger 2009

맞아요. 이점은 다른 프로세스가 무엇을해야할지 몰라도 걱정없이 더 많은 것을 할 수 있다는 것을 의미합니다. 그러나 그것은 항상 좋은 대화식 프롬프트에서 작동합니다. : P
Phoshi

1

(제어판, 시스템, 고급, 환경 변수, PATH에서와 같이) GUI를 사용하지 않으려면 REG을 설정 하는 데 사용할 수 있습니다 HKCU\Environment\PATH.

  • 최신 정보 %PATH%
  • REG ADD HKCU\Environment /v PATH /t REG\_EXPAND\_SZ /d "%PATH%" /f

/f기존 값 덮어 쓰기 힘은 당신이 대화 형으로 질문에 대답 할 필요가 없습니다.

편집 : %PATH% 인용해야합니다.

편집 : 적용하기 전에 재부팅 또는 다시 로그인해야 할 수도 있습니다. GUI에서 변경하는 동안 새 cmd.exe세션의 경우 즉시 적용 됩니다.

참조 : http://support.microsoft.com/kb/104011

참조에서 언급했듯이 일부 코드를 작성하려면 WM_SETTINGCHANGE를 보낼 수 있으며 로그인 / 로그 아웃 요구 사항을 피해야합니다.


매우 유용합니다. 그러나 해당 변수를 쿼리하면 아무것도 반환하지 않습니다.
PA.

으르렁 XP Pro SP3 English에서 다음과 같은 경로를 얻습니다 REG QUERY HKCU\Environment /v PATH.
opello

시스템 전체 경로가 아닌 사용자 별 경로입니다. 그 사람이 어디에 있는지 확실하지 않습니다. 그것들은 같은 것으로 설정할 수 있지만 일반적으로 별도의 것들을 포함합니다 (그리고 당신의 작업 경로는 둘의 병합입니다).
quack quixote

바로 HKCU에 있습니다. 링크 된 Microsoft KB 기사에는 두 레지스트리 위치가 있습니다.
opello

1
이것은 cmd.exe에서 WM_SETTINGCHANGE를 보내는 방법이 있다면 내가 찾고있는 거의 것입니다.
René Nyffenegger

0

현재 cmd.exe 프로세스에서 경로를 쉽게 변경할 수 있습니다.

PATH c:\MyNewDirectory;%PATH%

PATH 명령에 대한 도움말을 보려면 언제든지 HELP PATH를 수행 할 수 있습니다.


1
세션에만 적합하지 않습니까?
JL.

예, 이것은 여러 세션에서 지속되지 않습니다.
John T

JL이 맞고 영구적 인 솔루션을 찾고있었습니다. 그에 따라 내 질문을 편집했습니다.
René Nyffenegger

0

시스템 전체에서 영구적으로 영구적으로 변경하려면 시스템 제어판 (WinXP의 경우 내 컴퓨터-> 속성-> 고급-> 환경 변수)을 사용해야합니다. 설정은 Explorer 셸의 GUI 프로그램을 포함하여 전체 시스템에 영향을줍니다.

cmd.exe셸 에서 이러한 변경 사항 만 필요한 경우 cmd.exe 창을 시작할 때마다 변경 내용 을 설정하는 배치 파일을 실행할 수 있습니다. Phoshi의 대답은 을 언급 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun필요하면 명령 줄에서 작은 변경을 쉽게하고, 다시 실행 - 훌륭한 옵션처럼 보인다. 그러나 이것은 GUI 창이나 탐색기 셸에는 영향을 미치지 않습니다.

실제로 Sysinternals 가이를 수행 할 수있는 유틸리티가 없다는 사실에 놀랐습니다 . 다른 PStools 가 그것을 할 수 있습니까?


0

이 작업을 수행하는 많은 방법이 있습니다. REG ADD는 하나 또는 REG IMPORT (다른 컴퓨터에서 내 보낸 .REG 파일 사용)입니다. SETX / M은 또 다른 것입니다. 그룹 정책 기본 설정 (대량의 컴퓨터에 가장 쉬운 방법)을 사용하여 푸시 할 수도 있습니다.


0

여기에 언급되지 않은 또 다른 생각은 제어판을 실행하여 자동 입력하는 자동 단축 키 스크립트를 작성하는 것입니다. 이미 AHK 사용자 인 경우 잘 작동합니다 :-)

https://autohotkey.com/board/topic/63210-modify-system-path-gui/

hklm / system / currentcontrolset001 / control / session manager / environment : path key 편집은 어떻습니까? 그러나 동일한 키는 hklm / system / currentcontrolset002 및 hklm / system / currentcontrolset에 있습니다. /programming/3304463/how-do-i-modify-the-path-environment-variable-when-running-an-inno-setup-install에 따르면 이것이 올바른 것으로 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.