2010-06-21 2 views

답변

3

루프의 몸 구문 분석 할 때 %var%에 대한 참조가 해결되기 때문에이 작동하지 않습니다.

@ECHO OFF 
SETLOCAL EnableDelayedExpansion 
FOR /F "tokens=* delims= " %%G IN ('dir') DO (
    SET VAR=%%G 
    ECHO !VAR! 
) 
ENDLOCAL 

당신은 그것에 대해 모두 읽을 수를 입력 SET /?하여 명령 행 ;-)

1

에서 당신은 지연 확장이 필요합니다 :

@setlocal enableextensions enabledelayedexpansion 
@echo off 
FOR /f "tokens=* delims=" %%G IN ('dir') DO (
    set var=%%G 
    echo !var! 
) 
endlocal 
을 당신은 지연 변수 확장을 가능하게하고 대신 !var!을 사용해야합니다

작동하지 않는 이유는 %var%이 전체 명령이 구문 분석 될 때 평가되기 때문입니다. 명령은 전체 4 줄의 for 문입니다. 지연 확장을 사용하면 실제 echo이 올바르게 실행되었을 때 !var!의 평가를 지연합니다.