Files
ProjectStructure_HOME/UpdateSequences.bat

81 lines
2.4 KiB
Batchfile
Raw Normal View History

2025-08-08 13:33:08 -06:00
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "rootDir=%CD%"
set "currentDir=%rootDir%\_CURRENT"
if not exist "%currentDir%" (
mkdir "%currentDir%" >nul 2>&1
if not exist "%currentDir%" (
2025-08-11 10:51:39 -06:00
echo ERROR: Cannot create "%currentDir%" permission denied?
2025-08-08 13:33:08 -06:00
echo Run the script with sufficient rights or choose a writable location.
exit /b 1
)
)
set "logFile=%currentDir%\_UpdateSequences.log"
echo [%date% %time%] === UpdateSequences run started in "%rootDir%" ===>> "%logFile%"
2025-08-11 10:51:39 -06:00
set /a dailiesScanned=0
set /a sequencesTotal=0
set /a sequencesMirrored=0
set /a mirrorFailures=0
2025-08-08 13:33:08 -06:00
2025-08-11 10:51:39 -06:00
for /d %%D in (daily_*) do (
2025-08-08 13:33:08 -06:00
if exist "%%D" (
2025-08-18 15:12:24 -06:00
rem Skip _archive folders
if not "%%~nxD"=="_archive" (
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"
)
) else (
echo Skip: archive folder "%%D"
2025-08-08 13:33:08 -06:00
)
)
)
2025-08-11 10:51:39 -06:00
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.
2025-08-08 13:33:08 -06:00
pause >nul
2025-08-11 10:51:39 -06:00
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