ich einen Penguin Computing in Batch-Datei erstellen möchten:Penguin Computing entpacken, ausführen und Dateien im Batch-Datei verschieben
Uhr für Datei in ordnerA (.zip) → entpacken Sie sie (mit dem gleichen Namen) FolderB → und eine Batch-Datei auslösen → das gleiche für mehr eingehende .zip-Dateien tun.
Ich habe ähnliche Fragen zu diesem in Stackoverflow, aber ich brauche mehr Hilfe
: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
es funktionierte.! habe aber ein anderes Problem gefunden: Wenn ich %% G von der Hauptschleife an die Unterroutine übergebe (es übergibt OK, aber vermisst das "\") und damit bekomme ich einen Fehler. wie dies 'findstr/M" KO "% UNZIP_FOLDER% \% 1 \ Logs \% 1.log' wird 'd: \ LocalData \ \ Desktop \ entpacken" testfile \ Logs "testfile.log' –
PrimeSuspect
der fehlende Teil war zu add double \\, ich fügte \\ dem% 1 hinzu und es funktionierte wie erwartet. !! – PrimeSuspect