사용자의 PATH 변수를 포함하지 않고 시스템 PATH 변수에 추가

사용자의 PATH 변수를 포함하지 않고 시스템 PATH 변수에 추가

다음 환경 변수를 상상해 보세요.

체계경로 = C:\Windows
밥의 것사용자경로 =C:\Users\Bob

명령 프롬프트에서 PATH명령은 다음을 반환합니다.C:\Windows;C:\Users\Bob

달리고 난 후setx /m PATH "C:\Node;%PATH%"
체계경로 =C:\Node;C:\Windows;C:\Users\Bob

새 명령 프롬프트에서 PATH명령은 다음을 반환합니다.C:\Node;C:\Windows;C:\Users\Bob;C:\Users\Bob

다른 사용자인 Alice가 로그인합니다.
Alice의사용자경로 =C:\Users\Alice

명령 프롬프트에서 PATH명령은 다음을 반환합니다.C:\Node;C:\Windows;C:\Users\Bob;C:\Users\Alice

Bob의 변수에는 중복된 경로가 있고 PATHAlice의 변수에는 Bob의 경로가 있습니다 PATH.

PATH현재 사용자의 로 시스템을 오염시키지 않고 시스템에 추가할 수 있는 방법이 있습니까 PATH?

답변1

Windows 7에서는 다음을 사용하여 시스템 경로를 조회할 수 있습니다.

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path

그래도 Windows 8에서 작동한다면 이를 사용하여 새로운 가치를 구축하세요.

의 출력을 구문 분석하는 방법을 알아내야 합니다 reg query. 다음은 작동할 수 있는 방법입니다.

for /f "tokens=1,2*" %a in (' reg query "HKLM\…\Environment" /v path ') do set currentValue=%c

어디

  • 문자열 은 작은따옴표로 묶인 명령(위에서 제공) 입니다 .'reg query "HKLM\…\Environment" /v path'reg query
  • a, currentValuec는 변수 이름입니다. 원하는 변수 이름을 선택할 수 있습니다. 단, the a및 는 c단일 문자, 두 문자 간격이어야 합니다(예: nand p, 또는 x및 을 사용할 수 있음 z).
  •                             for /f "options" %variable in ('command1') do command2
    실행하고 , 출력을 구문 분석하고, (들)에 값을 할당하고( 위, 아래도 참조) 실행합니다 .command1%variable%acommand2
  • tokens=1,2*%a이는 각 (나머지) 줄의 첫 번째 토큰(단어)을 가져오고, %b두 번째 단어를 가져오고, %c줄의 나머지 부분을 가져오는 것을 의미합니다 .

    • 첫 번째 단어는 path(값 이름)입니다.
    • 두 번째 단어는 REG_EXPAND_SZ(값 유형)입니다.
    • 줄의 나머지 부분이 값입니다.

    (그냥 tokens=2*and를 사용하면 됩니다 currentValue=%b.)

따라서 위의 작업을 실행한 후 다음을 수행할 수 있어야 합니다.

setx PATH "C:\Node;%currentValue%" /m
  • 스크립트( .BAT파일) 에서 이 작업을 수행하는 경우 %%a및 를 사용하세요 %%c.
  • echo를 사용하기 전에 명령을 사용하여 이를 테스트해야 합니다 setx.

답변2

모든 사람이 사용하는 시스템 경로 값에 Bob의 특정 경로를 입력하지 마세요.

시스템 경로의 이전 값을 읽고 수정한 후 새 값을 설정합니다. cmd.exe(분명히 명령이 생성/수정/삭제할 수 있지만 읽을 수는 없음) 이러한 기능을 제공하지 않는 경우 set배치 파일에서 호출하는 프로그램에 넣으십시오.

시스템 경로 값은 레지스트리를 통해 발견(및 변경)됩니다. 나는 내가 알고 있는 가치를 검색하여 정확히 어디에 있는지, Google에서 그에 대해 언급된 내용을 확인하는 핵심 경로를 검색합니다.
(나중: 그들은 HKLM\System\CurrentControlSet\Control\Session Manager\EnvironmentHKCU\Environment)

Windows용 고급 스크립트 언어나 Windows API 지원을 사용하면 이를 처리할 수 있습니다. 또는 선택한 언어로 실행 가능한 컴파일된 프로그램입니다.

그는 CMD 교체 쉘명령을 받아@REGQUERY 함수가 있습니다:

echo %@REGQUERY["HKLM_64\System\CurrentControlSet\Control\Session Manager\Environment\Path"]

특정 시스템을 염두에 두고 있는 것 같으므로 다음과 같이 설치할 수 있습니다.TCC/LE(무료)이를 사용하여 배치 파일을 해석합니다.

관련 정보