:: 配置参数 set "SOURCE_DIR=D:\HexoBlog" :: Hexo博客根目录 set "BACKUP_DIR=D:\BlogBackups" :: 备份存放目录 set "IGNORE_DIRS=node_modules public .deploy_git" :: 要忽略的目录(空格分隔) set "ZIP_NAME=HexoBackup_%date:~0,4%%date:~5,2%%date:~8,2%.zip" :: 压缩文件名(带日期)
:: 创建临时工作目录 set "TEMP_DIR=%TEMP%\HexoBackupTemp" if exist "%TEMP_DIR%" rd /s /q "%TEMP_DIR%" mkdir "%TEMP_DIR%"
:: 复制文件,排除指定目录 echo 正在复制文件... for /d %%d in ("%SOURCE_DIR%\*") do ( set "skip=" for %%i in (%IGNORE_DIRS%) do ( if /i "%%~nxd"=="%%i" set skip=1 ) if not defined skip ( xcopy /E /I /Y "%%d" "%TEMP_DIR%\%%~nxd" ) )
:: 复制单独的文件(非目录) for %%f in ("%SOURCE_DIR%\*.*") do ( if not "%%~nxf"==".gitignore" ( :: 可以添加其他要排除的文件 copy /Y "%%f" "%TEMP_DIR%\" >nul ) )
:: 创建备份目录(如果不存在) if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"