2016-06-03 7 views
1

나는 변수가있는 Tcl 스크립트를 작성 중이며 실행 완료 후 값을 계속 유지하고자하므로 Windows 환경을 정의하려고합니다. 변수를 사용하려면 exec 함수를 사용하여 스크립트 내에서 set windows 명령을 실행하십시오.윈도우 환경 변수를 설정하는 방법 tcl 스크립트에서

나는 또한 Google을 통해 해결책을 찾으려고했지만 너무 효과가 없습니다. 는 여기에 내가

exec set verName=$xVar 

당신이 나를 도울 수 있다면 그것은 좋은 것을 시도 코드의 라인입니다. 미리 감사드립니다.

+0

'set env (YOUR_VARIABLE) value'는 환경 변수를 설정하며 실행 중에 만 사용할 수 있습니다. 영구적이지 않고 일시적입니다. – Dinesh

답변

2

먼저,이 질문하고 허용 대답을 읽어 Set a persistent environment variable from cmd.exe

을 당신은 Tcl에서 그렇게합니까? 음, 표준 registry 패키지는 당신에게 도구를 제공하십시오 registry 패키지

package require registry 

set root {HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment} 
set theVariable "ABCDE" 
set theValue "12345XYZ" 

registry set $root\\$theVariable $theValue 
registry broadcast "Environment" 

매뉴얼 페이지는 PATH 이것을 사용하기위한 구체적인 예를 가지고있다. 다른 변수로 업데이트하는 것은 간단합니다. 레지스트리의 해당 부분을 업데이트하려면 스크립트를 관리자 권한이있는 세션에서 실행해야합니다.

+0

이것은 호출 프로세스에는 영향을주지 않습니다. Explorer가 아니라면. – Joey

+0

@Joey 그것은 프로세스가 WM_SETTINGSCHANGED 이벤트를 청취하고 올바르게 동작하는지 여부에 달려 있습니다. –

+0

사실, 그러나 첫 번째 근사치 탐색기는이를 수행하는 유일한 프로세스입니다. – Joey

0
catch {exec cmd /C "setX $variable_name $valueToSet"} 
관련 문제