it-swarm-ko.tech

Windows의 PATH 환경 변수에 디렉토리 추가

Windows의 PATH 환경 변수에 C:\xampp\php를 추가하려고합니다.

환경 변수 대화 상자를 사용하여 이미 추가했습니다.

하지만 내 콘솔에 입력 할 때 :

C:\>path

새로운 C:\xampp\php 디렉토리가 표시되지 않습니다.

PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin

두 가지 질문이 있습니다.

  1. 왜 이런 일이 일어 났습니까? 내가 뭘 잘못 했니?
  2. 또한 콘솔을 사용하여 (그리고 프로그래밍 방식으로 배치 파일과 함께) PATH 변수에 디렉토리를 추가하는 방법은 무엇입니까?
433
Mp de la Vega

레지스트리 만 수정합니다. 기존 프로세스는이 값을 사용하지 않습니다. 새로운 프로세스는 시작이 변경가 부모로부터 이전 환경을 상속받지 않으면 그렇게합니다.

콘솔 세션을 시작한 방법을 지정하지 않았습니다. 이를 보장하는 가장 좋은 방법은 명령 셸을 종료하고 다시 실행하는 것입니다. 그런 다음 업데이트 된 PATH를 상속해야합니다.

120
Hans Passant

옵션 1

GUI로 PATH을 변경 한 후 콘솔 창을 닫았다가 다시 엽니 다.

이것은 변경된 후에 시작된 프로그램들만 새로운 PATH을 볼 수 있기 때문에 효과가 있습니다.

옵션 2

열려있는 명령 창에서 다음 명령을 실행하십시오.

set PATH=%PATH%;C:\your\path\here\

이 명령은 C:\your\path\here\를 현재 PATH에 추가합니다.

속보 :

  • set - cmd의 환경 변수를 변경하는 명령 현재 cmd 세션의 경우에만 ; 다른 프로그램 및 시스템은 영향을받지 않습니다.
  • PATH= - PATH이 일시적으로 변경 될 환경 변수임을 나타냅니다.
  • %PATH%;C:\your\path\here\ - %PATH% 부분이 PATH의 현재 값으로 확장되고 ;C:\your\path\here\가 연결됩니다. 이것은 새로운 PATH이됩니다.
847
JimR

경고 : 이 솔루션 은 PATH에 해를 끼칠 수 있으며 시스템의. 부작용으로 사용자와 시스템 PATH를 병합하고 PATH를 1024 자로 자릅니다. 이 명령의 효과는 되돌릴 수 없습니다. PATH를 먼저 백업하십시오. 자세한 내용은 의견을 참조하십시오.

이것을 맹목적으로 복사하여 붙여 넣지 마십시오. 주의해서 사용하십시오.

PATH 명령을 사용하여 영구적으로 setx에 경로를 추가 할 수 있습니다.

setx /M path "%path%;C:\your\path\here\"

시스템 PATH 대신 PATH 사용자를 설정하려면 /M 플래그를 제거하십시오.

노트:

  • setx 명령은 Windows 7 이상에서만 사용할 수 있습니다.
  • 관리자 권한 명령 프롬프트에서이 명령을 실행해야합니다.

  • 현재 세션에 대해서만 변경하려면 set 를 사용하십시오.

184
Nafscript

set 또는 setx 명령이 필요 없으므로 터미널을 열고 다음을 입력하십시오.

PATH

PATH 변수의 현재 값을 보여줍니다. 이제 디렉토리를 추가하고 싶습니까? 간단히 다음을 입력하십시오.

PATH %PATH%;C:\xampp\php

어떤 이유에서든 PATH 변수를 지우려면 (경로가 전혀 없거나 경로가 모두 삭제 된 경우) 다음을 입력하십시오.

PATH ;

업데이트

Danial Wilson이 아래 주석에 언급했듯이, 현재 세션에서만 경로를 설정합니다. 경로를 영구적으로 설정하려면 setx을 사용하십시오. 그러나 경로가 영구적으로 설정되지만 현재 세션에는 설정되어 있지 않으므로 새로운 명령 줄을 시작하여 변경 사항을 확인해야합니다. 자세한 정보는 here 를 참조하십시오.

환경 변수가 존재하는지 확인하거나 ECHO commnad를 사용하여 값을 확인하십시오.

echo %YOUR_ENV_VARIABLE%
56
zar

PowerShell이 ​​시대에 PATH를 이렇게 편집했습니다.

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")

컴퓨터 전체에서 모든 사용자에 대해 변수를 설정하려면 마지막 줄은 다음과 같아야합니다.

[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")

PowerShell 스크립트에서 PATH에 추가하기 전에 C:\xampp\php의 존재 여부를 확인할 수 있습니다 (이전에 추가 된 경우). if 조건으로 감쌀 수 있습니다. 

그래서 모든 것을 합치는 것 :

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
    [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
32
Ifedi Okonkwo

안전한 SETX

@ Nafscript의 초기 SETX 응답 에 대한 모든 주석을 끄십시오.

  • 기본적으로 SETX 사용자 경로를 업데이트합니다.
  • SETX ... /M 시스템 경로를 업데이트합니다.
  • %PATH%에는 사용자 경로가 추가 된 시스템 경로가 있습니다.

경고

  1. Backup PATH- SETX은 1024 자보다 긴 정크를 자릅니다.
  2. SETX %PATH%;xxx를 호출하지 않습니다. - 사용자 경로에 시스템 경로를 추가합니다.
  3. SETX %PATH%;xxx /M를 호출하지 않습니다. - 사용자 경로를 시스템 경로에 추가합니다.
  4. 과도한 배치 파일 사용으로 실명을 일으킬 수 있음1

ss64 SETX 페이지 에는 아주 좋은 예가 몇 가지 있습니다. 중요한 것은 SETX vs SETX /M에 대한 레지스트리 키의 위치를 ​​가리 킵니다.

사용자 변수 : 

HKCU\Environment

시스템 변수 : 

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

사용법

사용자에게 추가 PATH

append_user_path.cmd

@ECHO OFF
REM usage: append_user_path "path"
SET Key="HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > user_path_bak.txt
SETX PATH "%CurrPath%";%1

시스템에 추가 PATH

append_system_path.cmd. 반드시 admin으로 실행해야합니다.

(다른 KeySETX /M 수정자를 제외하고 기본적으로 동일합니다)

@ECHO OFF
REM usage: append_system_path "path"
SET Key="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > system_path_bak.txt
SETX PATH "%CurrPath%";%1 /M

대안

마지막으로 사용자 또는 시스템 환경 변수 설정을 분리하는 ss64 SETX 페이지에서 권장하는 SETENV 이라는 향상된 버전이있을 수 있습니다.


1. 엄격히 사실이 아닙니다.

26
icc97

파티에 늦을지라도 PATH에 추가하려는 디렉토리에 이미 있으면 편리합니다.

set PATH=%PATH%;%CD%

편집 : 주석 당 - 표준 Windows cmd와는 작동하지만 PowerShell에서는 작동하지 않습니다.

Powershell의 경우 %CD%[System.Environment]::CurrentDirectory입니다.

23
nclord

Setx를 사용하여 경로를 잘못 입력하면 어떻게됩니까? 가장 좋은 방법은 단순히 창문을 통해하는 것입니다. 제어판 -> 모든 제어판 항목 -> 시스템 -> 고급 시스템 설정 -> 환경 변수

아래로 스크롤하여 경로로 이동하고 편집을 선택하십시오. 또한 원하는 경로를 복사하여 더 쉽게 편집 할 수 있도록 즐겨 찾기 편집기에 붙여 넣을 수 있습니다.

19
Thomas Fonseca
  • 명령 행 변경 사항은 영구적이지 않으며 콘솔이 닫힐 때 손실됩니다.
  • 경로와 같은 작품이 먼저 제공됩니다. 
  • 이미 포함되어있는 다른 실행 파일을 덮어 쓸 수 있습니다. 예를 들어 경로에 다른 버전이 있고 경로의 영구적 인 변경없이 다른 버전을 추가하려는 경우 명령의 시작 부분에 디렉토리를 두어야합니다.

이미 포함 된 실행 파일을 재정의하려면; 

pATH = C :\xampp\php; % PATH %;를 설정하십시오.

3
hevi

모든 답변을 제외하고 멋진 GUI 도구로 Windows 환경 변수를 편집하려면 Rapid Environment Editor

시도 해봐! 그것의 사용하기에 안전하고 굉장한!

http://www.rapidee.com/en/

2
Mp de la Vega

Windows 10 LTSB에서 위의 제안을 확인하고 "help"개요 (cmd에서 'command /?'를 입력 할 때 볼 수 있음)를 통해 PATH 명령이 결론으로 ​​이어졌습니다. 시스템 환경 변수를 변경합니다. 현재 세션에 대한 경로 값만 변경하지만 재부트 후 모든 값은 PATH 명령을 사용하기 전과 마찬가지로 기본값으로 재설정됩니다.

반면에 관리자 권한으로 SETX 명령을 사용하는 것이 훨씬 더 강력합니다.이 값은 good (또는 적어도이 명령이 사용될 때까지 또는 그 값이 다음에 수동으로 GUI 조작 될 때까지) 변경됩니다.

그러나 명확하게하기 위해 나는 나를 위해 일한 최고의 SETX 구문 사용법 을 공유하는 것이 언젠가 누군가를 도울 것이라고 생각했다.

SETX PATH "%PATH%;C:\path\to\where\the\command\resides"

어디에서든지 등호 '='는 피해야하며 칸에 대해 걱정하지 마십시오! 공백을 포함하는 경로 에 따옴표를 더 삽입 할 필요가 없습니다. 분할 기호 ';' 그 일을해라.

SETX 다음에 오는 PATH 키워드는 시스템 환경 변수 가능한 값과 % PATH % (백분율 기호로 둘러싼 단어 PATH) 사이에서 변경해야하는 값 집합을 따옴표 안에 지정하고 OS가 기존 값을 남겨 두라고 지정합니다 PATH 값을 그대로두고 기존 값에 다음 경로 (분할 기호 ';'다음에 오는 경로)를 추가하십시오.

HTH

1
such_ke_nasdeeq

포인트 2 / 나는 나를 위해 PATH 또는 다른 환경 변수를 채우는 간단한 배치 파일을 사용하고 있습니다. 따라서 기본적으로 환경 변수가 오염되지 않습니다. 이 배치 파일은 어디에서나 액세스 할 수 있으므로 다음과 같이 입력 할 수 있습니다.

c:\>mybatchfile
-- here all env. are available
c:\>php file.php
1
Grzegorz Gajos

명령 프롬프트에서 Cmd에게 start으로 시작하여 Explorer의 명령 줄을 사용하도록 명령합니다.

그래서 start Yourbatchname.

이름이 batchfile.exe 인 것처럼 등록해야합니다.

프로그램 및 문서를 레지스트리에 추가 할 수 있으므로 시작 - 실행 대화 상자 또는 바로 가기에 경로없이 이름을 입력하면 Windows에서 해당 프로그램을 찾을 수 있습니다.

이것은 일반적인 reg 파일입니다. 아래 줄을 새 텍스트 문서에 복사하고 anyname.reg로 저장하십시오. 프로그램이나 문서로 편집하십시오.

경로에서는 \를 사용하여 키 경로에 폴더 이름을 구분합니다. regedit은 하나의 \를 사용하여 키 이름을 구분합니다. 모든 reg 파일은 REGEDIT4로 시작합니다. 세미콜론은 줄을 주석으로 변환합니다. @ 기호는 명명 된 값이 아닌 키에 값을 할당하는 것을 의미합니다.

파일이 존재할 필요는 없습니다. 이 파일은 Winword.exe를 열도록 Word.exe를 설정하는 데 사용할 수 있습니다.

start batchfile를 입력하면 iexplore.exe가 시작됩니다.

REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension> 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]

;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".

@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""

;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry

;Informs the Shell that the program accepts URLs.

;"useURL"="1"

;Sets the path that a program will use as its' default directory. This is commented out.

;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"

당신은 이미 다른 대답으로 길에 대해 말했 읍니다. cmd 매크로는 doskey /?를 참조하십시오 (입력시에만 작동합니다).

CMD에 대한 시작 명령을 실행할 수 있습니다. Windows Recource Kit 기술 참조

자동 실행  

HKCU\Software\Microsoft\Command Processor 

Data type Range Default value 
REG_SZ  list of commands  There is no default value for this entry.  

설명

Cmd.exe를 시작할 때마다 실행되는 명령을 포함합니다.

0
user6017774
  1. 그때 PHP을 (를) 설치했습니다. 추출 php-7 ***. 우편 으로 C :\php \
  2. 현재 PATH 환경 변수를 백업하십시오. cmd을 실행하고 명령을 실행하십시오 : path >C:\path-backup.txt

  3. 현재 경로 값을 C :\path.txt 파일로 가져 오기

  4. Path.txt를 수정하십시오 (내 경로 길이가 1024자를 초과하고 윈도우가 몇 년 동안 실행되고 있음)
    • 나는 거기에서 중복 경로를 제거했다. 'C :\Windows; 또는 C :\Windows\System32; 또는 C :\Windows\System32\Wbem; -두번 있어요.
    • 제거 된 프로그램 경로도 제거하십시오. 예: C :\Program Files\NonExistSoftware;
    • 이 방법으로 내 경로 문자열 길이 <1024 :))))
    • 경로 문자열 끝에; C :\php \를 추가하십시오.
    • 부 경로 값만 프레임 큰 따옴표로 버퍼에! 예 : "C :\Windows; ****; C :\php \"아니요 경로 = 거기 있어야한다 !!!
  5. 관리자 권한으로 Windows PowerShell을 엽니 다.
  6. 명령을 실행하십시오.

setx path "Here you should insert string from buffer (new path value)"

  1. 터미널을 다시 실행하고 ( "Far manager"사용) php -v
0
Serb

gtools에서 pathed 사용

직관적 인 방식으로 일을합니다. 예 :

pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"

그것과 결과를 보여줍니다 새 cmd를 생성 할 필요없이!

0
womd

제어판에 대한 더 나은 대안은 Pathenator라는 sourceforge에서 프리웨어 프로그램을 사용하는 것입니다.

https://sourceforge.net/projects/pathenator/

그러나 Windows 7,8 또는 10과 같은 Dot.Net 4.0 이상이있는 시스템의 경우에만 작업자입니다.

0
Bill Moore

cmd 명령을 실행하면 명령 창에 대한 모든 시스템 변수가 업데이트됩니다.

0
RBXII3