@echo off SETLOCAL ENABLEDELAYEDEXPANSION REM ============================================================ REM Reload wrapped with pre/post git commits + rolling QVW backup. REM Substitute PROJECT_ROOT and APP_PATH for your project. REM ============================================================ SET "PROJECT_ROOT=<>" SET "APP_PATH=%PROJECT_ROOT%\4.Apps.QVW\<>.qvw" SET "LOG_DIR=%PROJECT_ROOT%\10.QQlog" IF NOT EXIST "%LOG_DIR%" MKDIR "%LOG_DIR%" SET "LOG_FILE=%LOG_DIR%\QQreload_monitor_<>.txt" FOR /F %%a IN ('powershell -NoProfile -Command "Get-Date -Format yyyyMMdd_HHmmss"') DO SET "TS=%%a" REM --- Pre-reload: snapshot current -prj state to git --- PUSHD "%PROJECT_ROOT%" git add -A >> "%LOG_FILE%" 2>&1 git commit -m "pre-reload %TS% (user edits captured)" --allow-empty >> "%LOG_FILE%" 2>&1 POPD REM --- Rolling QVW backup (fallback safety net) --- powershell -ExecutionPolicy Bypass -File "%~dp0Backup_QVW.ps1" -QvwPath "%APP_PATH%" -Keep 20 >> "%LOG_FILE%" 2>&1 SET "QV_EXE=" FOR /F "tokens=2*" %%A IN ('REG QUERY "HKLM\SOFTWARE\QlikTech\QlikView" /v InstallDir 2^>nul') DO SET "QV_EXE=%%B\qv.exe" IF NOT DEFINED QV_EXE IF EXIST "C:\Program Files\QlikView\qv.exe" SET "QV_EXE=C:\Program Files\QlikView\qv.exe" IF NOT DEFINED QV_EXE (ECHO qv.exe not found >> "%LOG_FILE%" & EXIT /B 2) ECHO ============================================================ >> "%LOG_FILE%" ECHO [%date% %time%] reload start >> "%LOG_FILE%" "%QV_EXE%" /r "%APP_PATH%" SET "RC=%ERRORLEVEL%" ECHO [%date% %time%] reload end rc=%RC% >> "%LOG_FILE%" REM --- Post-reload: capture script-side -prj changes to git --- PUSHD "%PROJECT_ROOT%" git add -A >> "%LOG_FILE%" 2>&1 git commit -m "post-reload %TS% (rc=%RC%)" --allow-empty >> "%LOG_FILE%" 2>&1 POPD EXIT /B %RC%