2011-02-08 1 views
0
나는 스크립트가

, 그것은 내 방망이 스크립트 PATH이 방법은 장기에 있기 때문에 내가 여기에 오류가 몇 번을 실행 한 후 경로dos에서 세션 var 만들기? 난 시대의 동일한 경로 X 금액을 추가

path=%PATH%;C:\dev\external\stuff\bin 

의 경로를 추가합니다 (원인).

그래서 나는 myvar="dontdoitagain"을 시도하고 if 문을 작성했습니다. 그러나 항상 비어있는, 그것은 박쥐 파일이 끝날 때 (내가 내가 그 오류를 얻을 때 내가 무엇인지 프롬프트를 다시 열 때 반대로) 지워집니다 것 같습니다.

어떻게하면 세션 범위가 아닌 파일 범위에 해당 변수가 생깁니 까?

답변

1
if not defined EXTENDED_PATH (
    set PATH=%PATH%;my_additions 
    set EXTENDED_PATH=1 
) 

실제로 작동해야합니다. 변수의 수명을 제한하는 setlocal을 사용하지 않으면 배치를 종료 한 후에 모든 변수가 생성됩니다.

참고 : 실제로 DOS를 사용하는 경우 약 15 년 전에 Windows NT 4에서 cmd에 도입 된 기능에 의존하므로이 기능이 작동하지 않습니다. 이 경우 다음에 의지해야 할 수도 있습니다.

if %EXTENDED_PATH%==1 goto skip 
set PATH=%PATH%;my_additions 
set EXTENDED_PATH=1 
:skip 
+0

나는이 코드가 작동하지 않는 이유를 모르겠다. 내가 쓰지 않은 스크립트 부분에서 오류가 발생합니다. 나는 EXTENDED_PATH를 고유 한 변수로 변경하므로 간섭이 없습니다. 스크립트가 내 질문에 줄 제대로 작동합니다. 그것은 어떤 이유에서이 문법을 좋아하지 않습니다. –

+0

나는 이것으로 테스트를 시도했지만 실패했습니다. 경로 주변에 '(' ')'가 없으면 성공합니다. 하지만 googling suggest()는 다중 블록 if 문을 사용하는 방법입니다. 그래서 나는 매우 혼란 스럽다. 경로 : % PATH % C : \ dev \ external \ bin –

+0

@acid : 흠, 잠깐만 기다려주세요. DOS에 정말 * 있니? – Joey