Windowsバッチで日付と時刻を操作するのは面倒です。
最も堅牢なソリューションは、WMICを使用してローカルの日付と時刻を取得することです。次の形式で値を返します。
YYYYMMDDhhmmss.dddddd-ttt
YYYY = year
MM = month
DD = day
hh = hour in 24 hour format
mm = minutes
ss = seconds
dddddd = fractional seconds
ttt = time zone (minutes difference from Greenwich Mean Time)
したがって、以下を使用して、変数Editで月の現在の日を取得できます
-開始部分文字列の位置を7から6に修正しました
set curDate=
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined curDate set curDate=%%x
set day=%curDate:~6,2%
この手法の大きな利点は、ロケール設定に関係なく、世界中のすべてのWindowsマシンで機能することです。
テクニックが挿入されたコードは次の
とおりです編集-7から6に開始部分文字列の位置を修正
@echo off
echo Running dump...
set curDate=
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined curDate set curDate=%%x
set "day=%curDate:~6,2%"
"D:\wamp\bin\mysql\mysql5.5.16\bin\mysqldump" --host="localhost" --user="****" --password="****" database> "D:\wamp\backup\mysql\back.%day%.sql"
echo Done!