Script to Backup, Compact, and Recomplie MS Access Database¶
- Replace
Database1.accdbwith your database name - If needed, replace path to
MSAccess.exefor your version / installationset "MSACCESS_EXE=C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE"
accdb_backup_decompile_compact.cmd
@echo off
if "%~1"=="" goto SET_DEFAULT
if not exist "%cd%\%~1" goto SET_DEFAULT
set "fn=%~1"
goto AFTER_DEFAULT
:SET_DEFAULT
set "fn=Database1.accdb"
:AFTER_DEFAULT
set "MSACCESS_EXE=C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE"
set "backup_folder_name=backup"
REM Create Backup folder if it does not exist
if not exist "%cd%\%backup_folder_name%" md "%cd%\%backup_folder_name%"
for /f %%A in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMdd-HHmmss"') do set "TIMESTAMP=%%A"
set "source=%cd%\%fn%"
set "destination=%cd%\%backup_folder_name%\%fn%.%TIMESTAMP%"
echo 1. Backup command:
echo `copy "%source%" "%destination%"`
copy "%source%" "%destination%"
echo ... completed
echo.
echo 2. Decompile and Compact command:
echo `"%MSACCESS_EXE%" "%source%" /decompile /compact`
"%MSACCESS_EXE%" "%source%" /decompile /compact
echo ...completed
echo.
timeout /t 50
:END