2012-07-27 16 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窗口,我想,崩潰。閃爍開啓和關閉。

調試批次很爛,順便說一句。

回答

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 2012-07-28 06:49:28