
























虽然Windows有了Windows Terminal和PowerShell等脚本工具,但批次档在简单的需求状况下还是很方便的选择。
系统日期在產生备份档等场合很常用,本文介绍批次档裡取得系统日期的方法。
系统日期可由DATE环境变量取得,在DATE前后加上 % 即可取出其值:
d:\>echo %DATE%
2019/12/15DATE的值受日期格式设定而有不同,可能是2019/1/2或2019/01/02等值,為了方便取成固定格式,最好把日期格式改成不足10的数字左补零的格式。以下指令皆预设日期格式固定為YYYY/MM/DD,长度為10个字元。
变更日期与时间格式必须透过控制台来修改,或使用下列批次档直接变更登录的值:
▼ date-fmt.bat
@echo Windows Registry Editor Version 5.00 > date-fmt.reg
@echo.>> date-fmt.reg
@echo [HKEY_CURRENT_USER\Control Panel\International]>> date-fmt.reg
@echo "s1159"="上午">> date-fmt.reg
@echo "s2359"="下午">> date-fmt.reg
@echo "sLongDate"="yyyy'年'MM'月'dd'日'">> date-fmt.reg
@echo "sShortDate"="yyyy/MM/dd">> date-fmt.reg
@echo "sTime"=":">> date-fmt.reg
@echo "sTimeFormat"="HH:mm:ss">> date-fmt.reg
@echo "sShortTime"="HH:mm">> date-fmt.reg
@echo "sYearMonth"="yyyy'年'M'月'">> date-fmt.reg
@echo.
regedit date-fmt.reg环境变量有下列几种字串替换的操作:
▼ 把日期的斜线换成星号
echo %DATE:/=*%
2019*12*15▼ 把日期的斜线都删掉
echo %DATE:/=%
20191215通常我们都会拿YYYYMMDD这样的日期来用,因為Windows命令的参数选项都是以 / 来指定的,因此最好不用使用带有斜线的参数。
▼ 取日期变量的系统日(最后两个字元)
echo %DATE:~-2%
15备份档是1至31日循环时,就能使用日数的方法。例如:
set DAY=%DATE:~-2%
"c:\Program Files\7-zip\7z.exe" a s:\backup\data-%DAY%.7z d:\backup\*.dat另外,如何求出昨天或明天的日数呢?环境变量要运算只要使用set /A 即可。
set TODAY=%DATE:~-2%
set /A PREVDAY=%TODAY%-1
set /A NEXTDAY=%TODAY%+1
echo %PREVDAY%
14
echo %NEXTDAY%
16▼ 取出月份(由第6个字元开始取2个字元)
echo %DATE:~5,2%
12▼ 取出年度
echo %DATE:~0,4%
2019##
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。