当我在.bat文件中打印实际时间时,我使用
TIME /T
但输出如下:
04:30 a. m. or 14:30 p. m.
我想知道是否可以删除":"数字和a之间。米/ p。米从它的结尾,所以输出看起来像这样:
0430 or 1430
此外,我想知道是否可以比较输出或时间本身(时间/ t)。如果它低于X时间,则触发一个动作。我不知道这段代码是否正确,但是这样的话:
set /a time=TIME /T
if %time%<=(01:00 a. m.) (GOTO 0am)
if %time%<=(02:00 a. m.) (GOTO 1am)
if %time%<=(03:00 a. m.) (GOTO 2am)
if %time%<=(04:00 a. m.) (GOTO 3am)
if %time%<=(05:00 a. m.) (GOTO 4am)
if %time%<=(06:00 a. m.) (GOTO 5am)
if %time%<=(07:00 a. m.) (GOTO 6am)
if %time%<=(08:00 a. m.) (GOTO 7am)
if %time%<=(09:00 a. m.) (GOTO 8am)
if %time%<=(10:00 a. m.) (GOTO 9am)
if %time%<=(11:00 a. m.) (GOTO 10am)
if %time%<=(12:00 a. m.) (GOTO 11am)
if %time%<=(13:00 a. m.) (GOTO 12am)
if %time%<=(14:00 a. m.) (GOTO 1pm)
if %time%<=(15:00 a. m.) (GOTO 2pm)
if %time%<=(16:00 a. m.) (GOTO 3pm)
if %time%<=(17:00 a. m.) (GOTO 4pm)
if %time%<=(18:00 a. m.) (GOTO 5pm)
if %time%<=(19:00 a. m.) (GOTO 6pm)
if %time%<=(20:00 a. m.) (GOTO 7pm)
if %time%<=(21:00 a. m.) (GOTO 8pm)
if %time%<=(22:00 a. m.) (GOTO 9pm)
if %time%<=(23:00 a. m.) (GOTO 10pm)
if %time%<=(24:00 a. m.) (GOTO 11pm)
如果您知道更简单的方法,请告诉我。
感谢您的时间。
答案 0 :(得分:0)
为了获得您正在寻找的时间格式,您将需要使用批处理脚本字符串操作。这可以在此示例Format date and time in a Windows batch script中看到。
我相信这样的事情:
set time=%time:a. m.=%
会删除一个。米从现在起。诀窍是删除:因为它是字符串操作语法的一部分。
批处理字符串操作的另一个很好的参考DOS - String Manipulation
答案 1 :(得分:0)
我建议先打开命令提示符窗口,运行set /?
并阅读所有输出帮助页面。最后一个帮助页面是关于在批处理文件中使用的内置环境变量,当然还有DATE
和TIME
所属的命令行。
DATE
和TIME
字符串的格式取决于使用环境变量{{1}为运行批处理文件的用户帐户定义的 Windows区域和语言设置}和DATE
。
因此,有时最好以区域无关的格式获取日期和时间字符串,这可以通过使用命令来实现
TIME
输出例如
wmic OS GET LocalDateTime /VALUE
查看此字符串时,可以很容易地看到日期和时间字符串格式。
从这个字符串中获取当前小时和分钟,在24小时格式之间没有冒号,小时数为前导零&lt; 10分钟&lt; 10可以使用以下批处理代码:
LocalDateTime=20161227200325.171000+060
WMIC 的输出被 FOR 分成3个字符串,使用@echo off
for /F "tokens=2 delims==." %%I in ('%SystemRoot%\System32\wbem\wmic.exe OS GET LocalDateTime /VALUE') do set "LocalTime=%%I"
set "LocalTime=%LocalTime:~8,4%"
echo Local time in format HHMM is: %LocalTime%
pause
和=
作为{{1}定义的分隔符}。对此任务感兴趣的只是第二个字符串,其日期和时间以.
引用,并分配给循环变量delims==.
。国际格式的日期/时间字符串被分配给环境变量tokens=2
。
前8个字符用于格式为I
的日期,不感兴趣,以及当前秒的最后2个字符。因此,从LocalTime
开始,在输出结果时间字符串之前,只在yyyymmdd
旁边分配从字符索引位置8开始的4个字符。
发布的 WMIC 输出的批处理文件的输出为:
LocalTime
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
LocalTime
Local time in format HHMM is: 2003
echo /?
for /?
pause /?
set /?
wmic /?