0

我怎样才能做到这一点。我用for循环试过了,但效果不好。

有人能帮我吗?(对不起我的英语)

这是代码:

@echo.
@set h=%time:~0,2%
@set m=%time:~3,2%
@set s=%time:~6,2%

@set ARCDATE=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
@set LISTE=C:/BatchDateiHotfix/list.txt
@set SAVELOC=C:\Users\gkrobath\Desktop\BatchDateiHotfix\310
@set SITOS=C:\SVN_Check\SITOS_3_10\html
@set SVNUPDATE=C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
@set PACK="C:\Program Files\7-Zip\7z.exe" a
rem @set PACK="C:\Program Files\WinRAR\Rar.exe" a -r

@cd %SITOS%

@set /p KUNDE=Kundennamen eingeben ........... 
@echo.
@set /p NMR=TMS/OIS-Nummern eingeben ..... 

@set FILE="%SAVELOC%/%KUNDE%_hotfix_%NMR%_%ARCDATE%.zip"
@set HOTFIX=%PACK% %FILE%

@for /F %%a in (%LISTE%) do (
if not exist %%a goto errors else 
@%HOTFIX% %%a)

希望任何人都可以帮助我.-)

4

2 回答 2

1

此语法应该对您有所帮助,但它会在文件不存在的任何错误时退出循环。

@for /F "delims=" %%a in (%LISTE%) do (
   if not exist "%%~a" (
       goto errors
     ) else (
       @%HOTFIX% "%%~a"
   )
)
于 2013-11-13T05:10:01.087 回答
0

看起来您的代码将在 %%a 值是不存在的文件时立即退出。我没有看到 ":errors" 标签代码。

不要使用goto errors,而是使用函数调用以使循环继续。

:ErrNotExist
echo.
echo. The following file does not exist:
echo. %~1
echo.
goto:eof

然后将您的循环代码更改为以下内容:

@for /F %%a in (%LISTE%) do (
    if not exist %%a (
       CALL:ErrNotExist %%a 
    ) else (
       @%HOTFIX% %%a
    )
)

这至少会让你更接近于找出代码中发生的事情。

于 2013-11-12T15:39:56.293 回答