2010-12-31 8 views
1

xp를 사용 중입니다. 변수 사용에 문제가 있습니다. 나는 다음 코드를 사용하고환경 변수 설정

오프 @echo 설정 VAR = "srting"

내가 %를

설정 %의 var에 %

환경 변수를 사용하여 VAR의 값을 검사 할 때 % var % 정의되지 않았습니다.

누구든지 도움을 받으십시오.

답변

0

이 당신을 위해 작동합니다 :

@echo off 
set FILE_CONTENT=string 

for /f %%a in (file.txt) do set var=%%a 

if %var%==%FILE_CONTENT% (
goto MATCHED 
) else (
    goto NOT_MATCHED 
    ) 

:MATCHED 
echo "matched" 
goto:EOF 

:NOT_MATCHED 
echo "Not matched" 
goto:EOF 

그러나 파일 이름은 'spaces'를 포함하는 경우 또는 '(' 'c:\program files(x86)'처럼, 위의 코드는 작동하지 않습니다. 해결 방법은 파일의 짧은 이름 (아마도 ~ dpsx를 사용)을 가져온 다음 사용하는 것입니다.

+0

을 실행하면 var = %% a ... %% a가 예기치 않게 설정되었습니다. –

+0

위의 코드와 함께 .bat 파일을 사용하고 있습니까? 아니면 cmd 셸에서이 명령을 실행하고 있습니까? cmd 셸을 사용하는 경우 '%%'을 '%'로 바꿉니다. 또한 파일 이름에 특수 문자가 있습니까? –

+0

파일 이름에 특수 문자가 없습니다. 그러나 파일 텍스트에는 문자열이 포함 된 다음 : (콜론 기호) 다음 공백과 일부 문자열이 포함됩니다. 스크립트가 파일에서 최대 개까지 읽습니다. –

1

등호 앞뒤에 공백을 제거하십시오. IIRC, 문제가 생길 수 있다고 생각합니다.

또한, 당신이 그와 같은 줄에 하나 개 이상의 명령을 넣을 수 없습니다, 당신이 그것을 변경하는 대신 앰퍼샌드로 분리, 또는해야 :

@echo off 
set var="srting" 

편집 :

Set %var% 

그러나 %의 VAR %가 값이 아닌 변수 이름입니다

당신은 당신이 시도했다. 그게 당신이 의도 한 것입니까? 당신은 파일 내용에 따라 다른 코드 경로를 실행하려면

+0

나는 tryed하지만 불행히도 작동하지 않습니다. 그 프로 블램은 동일합니다 .. –

+0

편집을 참조하십시오 : 오타가 되었습니까? 아니면 실제로'Set'을 사용하셨습니까? – Mehrdad

+1

감사합니다. 나는 등호 앞뒤에 공백을 사용하고있었습니다. 이제는 (file.txt)에서/f %% a에 대해 –

1

설정 % VAR %의 환경 변수 %의 var에 %가

화이트 공간이 DOS 배치 파일에서 변수를 설정에서 허용되지 않습니다 정의되지 않았습니다.

이 시도 :

는 %를 var에 %

에코

설정 VAR = "srting을"OFF @echo .... 그건 당신에게 제공해야합니다 출력은 다음 행에 "srting"입니다.

지금 시도하는 경우 - 자신의 명령을 :

출력해야 설정 %의 var에 % 내보기에 올바른

"정의되지 않은 환경 변수 srting을". 희망은 당신에게 의미가 있습니다.