MySQL dump schemas as CSV, a directory per schema
@ECHO OFF
REM DANGER: Erase subdirectories without prompting user previously!
FOR /D /R %%D IN (*) DO (
ECHO erasing %%D
RD /S /Q %%D
)
REM We use the output of SHOW DATABASES to build our list
FOR /F "usebackq tokens=1-2 delims=| " %%D in (`mysql -h %BackupHost% -u %BackupUser% -p%BackupPass% -e "show databases;"`) DO (
REM Nested if's to exclude unwanted entries in list
IF NOT "%%D" == "Database" (
IF NOT "%%D" == "information_schema" (
IF NOT "%%D" == "performance_schema" (
IF NOT "%%D" == "mysql" (
REM Make a directory per schema
MKDIR %%D
REM Enter in it
PUSHD %%D
ECHO Dumping data in Schema: %%D
REM Backup{Host,User,Pass} are set as environment variables
mysqldump -h %BackupHost% -u %BackupUser% -p%BackupPass% -t -T . --fields-terminated-by=, --fields-escaped-by=\\ --lines-terminated-by=\r\n --fields-optionally-enclosed-by=0x22 %%D
REM Back to parent directory
POPD
)))))
REM Erase all *.sql found in every subdirectory from parent
FOR /R %%S IN (*.sql) DO ERASE %%~pxnS