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

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 に答える