私はバッチファイルでfilewatcher作成するバッチ・ファイル内のファイルを移動し、解凍しますfolderA内のファイルのためのFilewatcherが実行され、
ウォッチ(.zipファイル)→(同じ名前で)folderBのためにそれらを解凍→バッチファイルをトリガ→多くの受信.zipファイルに対して同じ操作を行います。
私はあなたのコードを持つ2つの主要な問題を参照してくださいいくつかのより多くの助け
:STARTPROCESS
CD /D %ROOT_DIR%
FOR /F "tokens=1-2 delims=." %%G in ('dir *.zip /b') do
(
REM unzip file
%SEVENZIP_PATH%\7z.exe x "%ROOT_DIR%" -o%UNZIP_FOLDER% -y >> %LOG%
echo %%G -- unzip complete
REM run batch1
:BATCH1
REM check ERROR from batch1 log --> i have a problem from here nothing below works
findstr /M "ERROR" %UNZIP_FOLDER%\%%G\Logs\*.log
If %ERRORLEVEL%==0 echo Error Found
move /Y "%UNZIP_FOLDER%\%%G" "%Folder1% >> %LOG%
goto STARTPROCESS
else
(
echo %%G Batch1 OK
goto BATCH2
)
REM run batch2
:BATCH2
REM check ERROR from batch2 log
findstr /M "Total Count : 0" %UNZIP_FOLDER%\%%G\Data\*_Output.log
If %ERRORLEVEL%==0 echo %%G Batch2 OK
goto STARTPROCESS
else
(
echo ERROR
move /Y "%UNZIP_FOLDER%\%%G\fileA.xml" "%UNZIP_FOLDER%\bin >> %LOG%
%SEVENZIP_PATH%\7z.exe a "%UNZIP_FOLDER%\%G%" -o%ZIP_FOLDER% -y >>%LOG%
)
)
timeout 60
goto STARTPROCESS
cmd /k
は、それが働きました。!別の問題を発見しました。メインループから%% Gをサブルーチンに渡すと(これは正常に実行されますが、 "\"は抜けてしまいます)、エラーが発生します。 "findstr/M" KO "%UNZIP_FOLDER%\%1 \ Logs \%1.log"は 'd:¥LocalData¥¥Desktop¥unzipになります" testfile \ Logs "testfile.log" –
PrimeSuspect
欠けている部分はダブル\\を追加し、\\を%1に追加して、期待通りに機能しました!! – PrimeSuspect