【bat】UTF-8のDBデータ取得

バッチファイルでUTF-8のDBデータを取得します。
DBデータ取得部分はDBに併せて変更する。

@echo off
REM バッチ実行ファイルと同階層に実行したいSQLファイルを配置する。
REM SQLファイルは1文を1行で記載する。
REM SQLファイルは「PARAM1」と「PARAM2」を置換文字列としておく。
setlocal ENABLEDELAYEDEXPANSION

REM SQLファイルの置換内容の入力
set /P START_DAY="開始日(YYYYMMDD)を入力してください。:"
set /P END_DAY="終了日(YYYYMMDD)を入力してください。:"

REM バッチ実行ディレクトリの設定
set CURRENT_DIR=%~dp0

REM 日付時刻の設定
set CURRENT_DATE_TIME_HOUR=%time:~0,2%
set CURRENT_DATE_TIME_MINUTE=%time:~3,2%
set CURRENT_DATE_TIME_SECOND=%time:~6,2%
set CURRENT_DATE_TIME=%date:~0,4%%date:~5,2%%date:~8,2%%CURRENT_DATE_TIME_HOUR: =0%%CURRENT_DATE_TIME_MINUTE: =0%%CURRENT_DATE_TIME_SECOND: =0%

REM DB接続ファイルのディレクトリに移動
REM 今回の例ではMySQLとする
set MYSQL_DIR="C:\Program Files\MySQL\MySQL Server 5.7\bin"
cd /d %MYSQL_DIR%

set SQL_FILE=%CURRENT_DIR%%~n0.sql
set SQL_FILE_TMP=%CURRENT_DIR%%~n0_tmp.sql
set WORK_DIR="D:\work"
set OUT_DIR=%CURRENT_DIR%output\%CURRENT_DATE_TIME%
mkdir %OUT_DIR%

set ROWNUM=1

REM コンソールの文字コードをUTF-8に変更
chcp 65001

for /f "tokens=*" %%i in (%SQL_FILE%) do (
set SQL_LINE1=%%i
set SQL_LINE2=!SQL_LINE1:PARAM1=%START_DAY%!
set SQL_LINE3=!SQL_LINE2:PARAM2=%END_DAY%!
echo !SQL_LINE3! > %SQL_FILE_TMP%

REM DB接続と実行
REM 今回の例ではMySQLとする
mysql -h localhost -u ユーザID -pパスワード -P ポート番号 docrdb < "%SQL_FILE_TMP%" >> %WORK_DIR%\!ROWNUM!.txt

set /A ROWNUM=!ROWNUM!+1
)

del %SQL_FILE_TMP%

REM コンソールの文字コードをShift-JISに変更
chcp 932

REM DBデータ出力結果のファイル名を変更
move %WORK_DIR%\1.txt %OUT_DIR%\01_案件数.txt
move %WORK_DIR%\2.txt %OUT_DIR%\02_案件数不備あり.txt
move %WORK_DIR%\3.txt %OUT_DIR%\03_案件数不備なし.txt