请参阅下面的批处理代码,它显示date和时间,但缺less一天。 如何解决这个问题?
码:
@echo off For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set dt=%%c-%%a-%%b) For /f "tokens=1-4 delims=:." %%a in ('echo %time%') do (set tm=%%a.%%b) set bkupfilename=%1 %dt% %tm%.bak echo Backing up to file: %bkupfilename%
输出:
C:\wamp>backup.bat Backing up to file: -08-2011 15.49.bak
当解析系统命令如date /t
输出时,系统区域是非常重要的。
该脚本的第一行发出命令date /t
并解析其输出。 它将指定的分隔符(即空格)分割字符串 (因此结束之前的空间
"
)和斜杠/
。然后,找到第2到第4项,并将它们分配给变量%a
, %b
和%c
。
如果您在控制台上键入date /t
,您将看到输出并理解脚本不能正常工作的原因。
我想在你的系统上,由于你的系统区域设置, date /t
命令的输出是不同的。 您将不得不修改您的脚本以符合这些设置。
(另外请记住,这种脚本不是可移植的:使用其他语言环境的另一个用户将遇到同样的问题)