2012-07-27 2 views
1

일괄 프로그래밍의 기능을 배우고 있으며, 작은 걸림돌을 맞았습니다. 재귀 적으로 적절한 .vob 파일을 찾기 위해 디렉토리 (및 하위 디렉토리)를 반복하려고합니다. dir 명령이 File Not Found을 출력하고 있다는 것을 제외하고 모두 정상입니다. 명령 줄에서, 내가 사용 망각하는 오류를 리디렉션 할 수 있습니다 :CMD 일괄 처리가 바람직하지 않음 리디렉션

dir /b *.vob 2>NUL

을 배치 파일에서, 그러나, 나는 죽음의 깜짝 얻을.

for /R %%G IN (\) DO (
    pushd "%%G" 
    for /F "usebackq" %%V in (`dir /b *.vob`) DO (
     echo: Found %%~nV in %%~dpV 
    ) 
    popd 
) 

for /R %%G IN (\) DO (
    pushd "%%G" 
    for /F "usebackq" %%V in (`dir /b *.vob 2>NUL`) DO (
     echo: Found %%~nV in %%~dpV 
    ) 
    popd 
) 

내 cmd를 창으로 변경, 나는 가정, 충돌합니다. 깜박임 켜짐과 꺼짐.

디버깅 배치가 빠름, btw.

답변

2

2^>NUL 리디렉션을 이스케이프 처리해야하며 예상대로 작동해야합니다.

for /R %%G IN (\) DO (
    pushd "%%G" 
    for /F "usebackq" %%V in (`dir /b *.vob 2^>NUL`) DO (
     echo: Found %%~nV in %%~dpV 
    ) 
    popd 
) 
+0

감사합니다. – Phix

관련 문제