2014-04-08 3 views
-1

내 스크립트를이 오류 메시지가/before/명령에 표시되는 이유는 무엇입니까?

echo hello 
FOR /F %%G IN temp\clist.txt DO type %%G 

출력 :

S:\TLIB admin\Sets' choicelist orphans>echo hello 
hello 
temp\clist.txt was unexpected at this time. 

S:\TLIB admin\Sets' choicelist orphans>FOR /F %G IN temp\clist.txt DO type %G 

S:\TLIB admin\Sets' choicelist orphans> 
+0

출력의 순서에 관한이 질문은 'FOR' 명령을 올바르게 사용하는 방법이 아니라는 점에 유의하십시오. –

+0

죄송합니다. 관련없는 답변이 삭제되었습니다. –

+0

@AlexeiLevenkov 질문이 유효하지 않은 구문에 관한 것이고 그것이 작동하는 이유가 OP가 질문의 목적을 분명하게 만들지 않았거나 질문 자체가 명확하지 않은 경우. – foxidrive

답변

1

이 임시 폴더는 현재 작업 디렉토리에 위치한다고 가정합니다.

@echo off 
echo hello 
FOR /F "usebackq delims=" %%G IN ("temp\clist.txt") DO echo %%G 

type 파일을 원한다면 사용할 수 있습니다. 오류가 명령 전에 주심 왜

type "temp\clist.txt" 
+0

고마워,하지만 질문을 읽어보십시오 :) – ChrisJJ

+0

아마도 내 질문에 코드와 코드를 읽을 수 있습니다. 구문이 잘못되어 귀하의 것이 작동하지 않습니다. 잘못된 구문이 작동하지 않는 이유를 묻는다면 올바른 포럼에 참여할 수 없습니다. – foxidrive

+0

이것은 정답입니다 (제 생각에는). 위의 내용을 읽으면 오류 _가 가장 먼저 출력되지 않습니다. 단지'echo' 명령 만이 원래의 코드 조각에'@echo off'가 없다는 올바른 동작입니다. 그것은 나중에 오류 (또는 원인)와 관계없이 발생합니다. – Damon

1

? 문제는 명령 실행시가 아니라 명령 구문 분석시 발생하기 때문에

구문 분석기가 행을 읽고 해당 행을 의도 한 것의 유효한 내부 표현으로 변환하려고 시도하면 for 명령이 표시되지만 해당 행을 유효한 명령으로 해석 할 수 없습니다 (다른 답변/주석), 파서는 오류 설명을 stderr (기본적으로 콘솔)에 출력하고, 에코가 켜지면 해석 할 수없는 리터럴은 stdout으로 보내지 만 실행되지는 않습니다. 파서.

관련 문제