@echo off

::启用了延迟变量扩展,允许在代码块中使用 !variable! 来访问变量的最新值。
setlocal enabledelayedexpansion

SET YYYY=%DATE:~0,4%
SET MM=%DATE:~5,2%
SET DD=%DATE:~8,2%
echo %YYYY%-%MM%-%DD%   %TIME%

:: 设置数据库连接信息
set DB_USER=root
set DB_PASSWORD=1234
set DB_NAME=erp

:: 设置要忽略的表列表
set TABLES_TO_IGNORE=newtable_1 newtable_2

:: 初始化忽略参数
set IGNORE_PARAMS=

:: 遍历表列表并生成忽略参数 在 for 循环中,使用 !IGNORE_PARAMS! 而不是 %IGNORE_PARAMS%,以确保每次循环都能获取到最新的变量值。
for %%t in (%TABLES_TO_IGNORE%) do (
set IGNORE_PARAMS=!IGNORE_PARAMS! --ignore-table=%DB_NAME%.%%t
)

echo %IGNORE_PARAMS%

:: 构建 mysqldump 命令
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump" -h127.0.0.1 -P3306 -u %DB_USER% -p%DB_PASSWORD% %DB_NAME% %IGNORE_PARAMS% >%DB_NAME%_%YYYY%-%MM%-%DD%.sql

 

:: 输出完成信息
echo 数据库导出完成! %TIME%

endlocal
pause

posted on 2024-12-06 17:30  Gu  阅读(2)  评论(0编辑  收藏  举报