@echo off setlocal enableextensions set "ROOT=%~dp0" set "ROOT=%ROOT:~0,-1%" set "VENV=C:\venv_ICR" set "PYTHON=%VENV%\Scripts\python.exe" for /f %%I in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMdd_HHmmss"') do set "DT=%%I" set "LOG_FILE=%ROOT%\LOG\weekly_%DT%.log" md "%ROOT%\LOG" 2>nul set "PIPELINE_LOG_FILE=%LOG_FILE%" echo [1/6] Verifica venv... if not exist "%PYTHON%" ( echo Creazione ambiente virtuale... C:\Python311\python.exe -m venv "%VENV%" "%VENV%\Scripts\pip" install pyodbc pywin32 duckdb pandas loguru ) "%VENV%\Scripts\pip" install --quiet pandas echo [2/6] Sync + esecuzione CsvToParquet_layer1 weekly... set "L1_LOCAL=C:\PYTHON_LOCAL\CsvToParquet_layer1" robocopy "%ROOT%\CsvToParquet_layer1" "%L1_LOCAL%" /MIR /XO /XD parquet logs __pycache__ /NFL /NDL /NJH /NJS set "DATAHUB_INPUT_DIR=\\mediaset.it\share\Indirizzo_controllo_risorse\SOFTWARE\SCHEDULATORE\INPUT" "%PYTHON%" "%L1_LOCAL%\main.py" weekly if errorlevel 1 ( echo [ERRORE] CsvToParquet_layer1 weekly fallito. exit /b 1 ) echo [3/6] Pubblicazione parquet su Layer 1 (server)... set "L1_DEST=\\mediaset.it\share\Indirizzo_controllo_risorse\SOFTWARE\PYTHON_SRV\parquet_layer1" robocopy "%L1_LOCAL%\parquet" "%L1_DEST%" *.parquet /MIR /NFL /NDL /NJH /NJS echo [4/6] Layer 1 -> Layer 2 (trasformazione business + enrich)... "%PYTHON%" "%ROOT%\Parquet_layer1ToParquet_layer2\main.py" weekly >> "%LOG_FILE%" 2>&1 if errorlevel 1 ( echo [ERRORE] Parquet_layer1ToParquet_layer2 weekly fallito. exit /b 1 ) echo [5/7] SQLite mirror Layer 2... "%PYTHON%" "%ROOT%\Parquet_layer1ToParquet_layer2\sqlite_mirror.py" >> "%LOG_FILE%" 2>&1 if errorlevel 1 ( echo [AVVISO] SQLite mirror fallito - pipeline continua. ) echo [6/7] ParquetToAccessWeekly (DB_WEEK.accdb)... "%PYTHON%" "%ROOT%\ParquetToAccessWeekly\main.py" >> "%LOG_FILE%" 2>&1 if errorlevel 1 ( echo [ERRORE] ParquetToAccessWeekly fallito. exit /b 1 ) echo [7/7] Avvio pipeline daily... call "%ROOT%\run_daily.bat" endlocal