sequences updateable
This commit is contained in:
@@ -6,7 +6,7 @@ set "currentDir=%rootDir%\_CURRENT"
|
||||
if not exist "%currentDir%" (
|
||||
mkdir "%currentDir%" >nul 2>&1
|
||||
if not exist "%currentDir%" (
|
||||
echo ERROR: Cannot create "%currentDir%" (permission denied?).
|
||||
echo ERROR: Cannot create "%currentDir%" permission denied?
|
||||
echo Run the script with sufficient rights or choose a writable location.
|
||||
exit /b 1
|
||||
)
|
||||
@@ -15,27 +15,62 @@ if not exist "%currentDir%" (
|
||||
set "logFile=%currentDir%\_UpdateSequences.log"
|
||||
echo [%date% %time%] === UpdateSequences run started in "%rootDir%" ===>> "%logFile%"
|
||||
|
||||
set "processedList=|"
|
||||
set /a dailiesScanned=0
|
||||
set /a sequencesTotal=0
|
||||
set /a sequencesMirrored=0
|
||||
set /a mirrorFailures=0
|
||||
|
||||
for /f "delims=" %%D in ('dir /b /ad 2^>nul ^| findstr /R /I /B /E "daily_[0-9][0-9][0-9][0-9][0-9][0-9]" ^| sort /R') do (
|
||||
for /d %%D in (daily_*) do (
|
||||
if exist "%%D" (
|
||||
for /f "delims=" %%S in ('dir /b /ad "%%D" 2^>nul') do (
|
||||
set "notSeen=!processedList:|%%S|=!"
|
||||
if "!notSeen!"=="!processedList!" (
|
||||
echo [%%S] <= %%D
|
||||
echo [%date% %time%] Sequence: "%%S" from daily: "%%D" >> "%logFile%"
|
||||
set "src=%%D\%%S"
|
||||
set "dst=%currentDir%\%%S"
|
||||
set "srcLong=\\?\%rootDir%\%%D\%%S"
|
||||
set "dstLong=\\?\%currentDir%\%%S"
|
||||
robocopy "!srcLong!" "!dstLong!" /MIR /MT:32 /R:1 /W:1 /COPY:DAT /DCOPY:DAT /FFT /NFL /NDL /NP /NJH /NJS >> "%logFile%" 2>&1
|
||||
set "processedList=!processedList!%%S|"
|
||||
)
|
||||
set /a dailiesScanned+=1
|
||||
set "hadSub=0"
|
||||
rem Case 1: subfolders treated as sequences
|
||||
for /d %%S in ("%%D\*") do (
|
||||
set /a sequencesTotal+=1
|
||||
set "hadSub=1"
|
||||
call :MirrorOne "%%D\%%~nxS" "%%~nxS"
|
||||
)
|
||||
rem Case 2: no subfolders => mirror daily itself as a sequence
|
||||
if "!hadSub!"=="0" (
|
||||
set /a sequencesTotal+=1
|
||||
call :MirrorOne "%%D" "%%~nxD"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
echo Done. Press any key to exit.
|
||||
echo [%date% %time%] === UpdateSequences run completed ===>> "%logFile%"
|
||||
echo( Summary: dailies=%dailiesScanned% sequences=%sequencesTotal% ok=%sequencesMirrored% fail=%mirrorFailures%
|
||||
echo [%date% %time%] === UpdateSequences run completed (d=%dailiesScanned% seq=%sequencesTotal% ok=%sequencesMirrored% fail=%mirrorFailures%) ===>> "%logFile%"
|
||||
echo( Done. Press any key to exit.
|
||||
pause >nul
|
||||
exit /b 0
|
||||
exit /b 0
|
||||
|
||||
:MirrorOne
|
||||
setlocal EnableExtensions EnableDelayedExpansion
|
||||
set "srcRel=%~1"
|
||||
set "seqName=%~2"
|
||||
|
||||
set "srcAbs=%rootDir%\%srcRel%"
|
||||
set "dstAbs=%currentDir%\%seqName%"
|
||||
|
||||
rem Only proceed if source is a directory (trailing \ check)
|
||||
if not exist "%srcRel%\" (
|
||||
echo Skip: missing folder "%srcRel%"
|
||||
endlocal & exit /b 0
|
||||
)
|
||||
|
||||
echo Mirror: "%srcAbs%" -^> "%dstAbs%"
|
||||
echo [%date% %time%] Mirror: "%srcAbs%" -^> "%dstAbs%" >> "%logFile%"
|
||||
robocopy "%srcAbs%" "%dstAbs%" /MIR /MT:8 /R:1 /W:1 /COPY:DAT /DCOPY:DAT /FFT /NFL /NDL /NP /NJH /NJS >> "%logFile%" 2>&1
|
||||
set "rc=!errorlevel!"
|
||||
if "!rc!"=="" set "rc=0"
|
||||
if !rc! LSS 8 (
|
||||
set /a sequencesMirrored+=1
|
||||
echo( OK (rc=!rc!)
|
||||
echo [%date% %time%] OK rc=!rc! >> "%logFile%"
|
||||
) else (
|
||||
set /a mirrorFailures+=1
|
||||
echo( ERROR (rc=!rc!) - see log
|
||||
echo [%date% %time%] ERROR rc=!rc! >> "%logFile%"
|
||||
)
|
||||
|
||||
endlocal & exit /b 0
|
||||
Reference in New Issue
Block a user