抑制FOR / F循环中的错误返回

时间:2013-11-08 22:15:41

标签: svn batch-file

这就是我现在正在做的事情

@echo off
setlocal EnableDelayedExpansion
set /a FINALSVN=0

cd %~dp0 ..\..\..
set SKETCHDIR=%CD%
for /D %%D IN (%SKETCHDIR%\*) DO (
    FOR /F "tokens=*" %%L IN ('@svn info %%D ^| FIND "Last Changed Rev: "') DO (SET STR=%%L)
    SET STR=!STR:Last Changed Rev: =!
    SET /a INT=!STR!
    if !INT! GTR !FINALSVN! SET FINALSVN=!INT!
)

echo !FINALSVN!

endlocal
exit /b

我正在尝试做的是摆脱svn info向我吐出的错误。我知道有错误,并非所有目录都能正常工作。这就是重点,如果它没有发生任何事情。我只是希望错误消失。我试过放置> NUL和^ NUL在不同的地方,我终于不知所措。有谁知道任何解决方案?

2 个答案:

答案 0 :(得分:1)

@echo off
setlocal EnableDelayedExpansion
set /a FINALSVN=0

cd %~dp0 ..\..\..
set SKETCHDIR=%CD%
for /D %%D IN (%SKETCHDIR%\*) DO (
    FOR /F "tokens=*" %%L IN ('@svn info %%D ^| FIND "Last Changed Rev: " ^>nul 2^>^&1') DO (SET STR=%%L)
   if "!STR!" NEQ "" (
    SET STR=!STR:Last Changed Rev: =!
    SET /a INT=!STR!
    if !INT! GTR !FINALSVN! SET FINALSVN=!INT!
   )
)

echo !FINALSVN!

ENDLOCAL 退出/ b

答案 1 :(得分:0)

FOR /F "tokens=*" %%L IN ('svn info %%D 2^>nul ^| FIND "Last Changed Rev: "') DO (SET STR=%%L)