2012-01-18 5 views
1

루프가 포함 된 박쥐 파일을 실행하려고합니다. 루프를 실행하면 파일 실행이 중단됩니다.박쥐 파일의 간단한 따옴표 문제

오류가 무엇인지 이해하기 위해 약간의 명령을 수정했으며 루프에 간단한 따옴표를 넣을 수없는 것처럼 보입니다.

/f "tokens=1,2 delims==" %%i IN ("version=X.Z.W") do set VERSION=%%j -> success 
/f "tokens=1,2 delims==" %%i IN ('version=X.Z.W') do set VERSION=%%j -> failure 

version=X.Z.W는 내가 다른 책상에서 테스트 findstr /B /c:"%var%=" ..\..\file.properties

에 의해 반환하고,이 문제는 내 컴퓨터에 발생한다 그것은 성가신입니다. 수정할 설정이 있는지 알고 있습니까?

명령 프롬프트에 명령을 직접 입력 할 때 문제가 있습니다.

도움을 주셔서 감사합니다.

+0

구체적인 내용은 다음과 같습니다. 1. 각 컴퓨터가 실행중인 OS (서비스 팩 포함), 2. 어떤 파일에 'FINDSTR'을 실행하려고합니까? 그것은 시스템 파일/로그, 개인 파일 등 (파일 확장자를 포함하십시오)입니까? – Mechaflash

답변

0

위의 내용을 직접 명령 프롬프트에 입력하는 경우 % 대신 %%을 사용했기 때문에 오류가 발생합니다. Windows CMD는 배치 파일을 처리하므로 %%을 읽지 않습니다.

"과 대조적으로 '은 CMD에서 다르게 읽습니다. '"이 리터럴 문자열로 읽혀지는 명령으로 읽습니다.

+0

안녕하세요, 사실 %%는 배치 파일에서 사용해야합니다. 명령 줄 : /f "tokens = 1,2 delims =="IN ('findstr/B/c : "% var % =".... \ file.properties') 명령은 VERSION = % j 은 내 명령 행에서 작동하지 않지만 다른 컴퓨터에서는 작동합니다. 변수 var가 이미 "version" – Rib

+0

으로 설정되었으므로 실패한 명령은 'FOR/F'입니다. 토큰 = 1,2 delims == "% i IN ('findstr/B/c :"% var % = ".. .. \ file.properties ') VERSION = % J'을 설정합니까? – Mechaflash

+0

예, 명령을 사용할 때마다 ' – Rib