之前曾經有想過要利用批次檔加上 windows 的排程來定時為測試用的資料庫進行備份,只是不知道怎麼取得目前系統日期時間來使用,最近剛好看到這幾篇文章,留下來做參考:
取得今天日期的年、月、日:
for /f "tokens=1-4 delims=-/ " %%i IN ("%date%") DO ( set year=%%i set month=%%j set day=%%k )
取得當下時間的時、分、秒、百分之一秒
for /f "tokens=1-4 delims=:." %%i IN ("%time%") DO ( set hour=%%i set minute=%%j set second=%%k set centisecond=%%l )
組合含有日期、時間的字串:
SET OutputDir=%year%%month%%day%_%hour%_%minute%_%second%_%centisecond%
指令取得上個月的月份(使用 SET /A,/A 可以做數值運算(arithmetic)):
@echo off rem 把日期裡的斜線拿掉;2008/10/21→20081021 set Today=%DATE:/=% set ThisYear=%Today:~0,4% rem 取回今天的年度月份;200810 set ThisMonth=%Today:~4,2% rem 本月份減1取得上個月份 set /A LastMonth=%ThisMonth%-1 rem 如果是1月份的話,要把年度減1 if "%LastMonth%"=="0" set /A ThisYear=%ThisYear%-1 if "%LastMonth%"=="0" set LastMonth=12 rem 如果是1月到9月時,左補零成為01~09 if "%LastMonth:~1,1%"=="" set LastMonth=0%LastMonth% echo Year=%ThisYear% echo Month=%LastMonth%
參考:
沒有留言:
張貼留言