批处理文件 - 将时间缩短到第二个变量

时间:2015-03-11 15:55:24

标签: batch-file

如何使用批处理文件将第二秒的时间捕获到变量中。我的脚本现在看起来像这样。

CLS
@ECHO OFF

set yy=%date:~-4%
set mm=%date:~-7,2%
set dd=%date:~-10,2%
set newdate=%dd%%mm%%yy%

echo %newdate%

我已经捕获了日期,它打印出我需要的内容,但现在我需要将时间附加到变量上。我该怎么做?

3 个答案:

答案 0 :(得分:1)

首先将时间读入变量以获取快照,以便在提取字段时不会保持滴答声。然后使用set子字符串运算符来提取您想要的内容。

时间格式为HH:MM:SS.MS(至少在我的en-us语言环境中)。一个问题是小时字段可能以前导空格开头,因此您需要if条件将其更改为前导零或删除空格。

set "current_time=%time%"

set "hour=%current_time:~0,2%"
if "%current_time:~0,1%"==" " set "hour=0%current_time:~1,1%"
set "min=%current_time:~3,2%"
set "sec=%current_time:~6,2%"
set "ms=%current_time:~-2%"

set "newtime=%hour% %min% %sec% %ms%"

echo %newtime%

如果你想在一小时内删除前方空格而不是将其更改为前导零,那么你可以这样做:

set "hour=%current_time:~0,2%"
if "%current_time:~0,1%"==" " set "hour=%current_time:~1,1%"

答案 1 :(得分:1)

@ECHO OFF
CLS
set yy=%date:~-4%
set dd=%date:~-7,2%
set mm=%date:~-10,2%
set newdate=%dd%%mm%%yy%_%Time:~0,8%
set newdate=%newdate::=%
echo %newdate%
pause

答案 2 :(得分:0)

这对我有用:

CLS
@ECHO OFF

set yy=%date:~-4%
set mm=%date:~-7,2%
set dd=%date:~-10,2%
set newdate=%dd%%mm%%yy% & time /T

echo %newdate%
pause

您可以通过添加&符号来运行多个命令。如果您只想追加时间,如果第一个命令已经过了,请改用&&