Batch file 如何打印实际时间而不打印“时间”;a、 m"&引用;p、 m";及&引用;?
当我在.bat文件中打印实际时间时,我使用Batch file 如何打印实际时间而不打印“时间”;a、 m"&引用;p、 m";及&引用;?,batch-file,time,compare,Batch File,Time,Compare,当我在.bat文件中打印实际时间时,我使用 TIME /T 但是输出是这样的: 04:30 a. m. or 14:30 p. m. 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.) (
TIME /T
但是输出是这样的:
04:30 a. m. or 14:30 p. m.
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)
set time=%time:a. m.=%
我想知道是否可以删除数字和a之间的“:”。m、 /PM从末尾开始,输出如下所示:
0430 or 1430
另外,我想知道是否可以比较输出或时间本身(time/t)。如果低于X时间,则会触发一个操作。我不知道这个代码是否正确,但类似这样的代码:
04:30 a. m. or 14:30 p. m.
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)
set time=%time:a. m.=%
set/a time=time/T
如果%time%要获得所需的时间格式,需要使用批脚本字符串操作。这可以在这个例子中看到
我相信是这样的:
04:30 a. m. or 14:30 p. m.
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)
set time=%time:a. m.=%
将删除a。M从那时起。诀窍是删除:因为它是字符串操作语法的一部分
批处理字符串操作的另一个很好的参考我建议首先打开一个命令提示符窗口,运行set/?
并阅读所有输出帮助页。最后一个帮助页面是关于批处理文件中使用的内置环境变量,当然也包括DATE
和TIME
所属的命令行
DATE
和TIME
字符串的格式取决于Windows区域和语言设置,这些设置是使用环境变量DATE
和TIME
为运行批处理文件的用户帐户定义的
出于这个原因,有时最好以独立于区域的格式获取日期和时间字符串,这可以通过使用命令来实现
wmic OS GET LocalDateTime /VALUE
例如,哪个输出
LocalDateTime=20161227200325.171000+060
查看此字符串可以很容易地看到日期和时间字符串格式
要从该字符串中仅获取当前小时和分钟,在24小时格式中不带冒号,前导零表示小时<10分钟<10分钟,可以使用以下批处理代码:
@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
WMIC的输出被分成3个字符串,使用=
和
作为分隔符,如delims==。
所定义。此任务只需要第二个字符串,其中日期和时间由tokens=2
引用,分配给循环变量I
。国际格式的日期/时间字符串被分配给环境变量LocalTime
前8个字符表示格式为yyyyymmdd
的日期,不感兴趣,最后2个字符表示当前第二个。因此,从LocalTime
输出结果时间字符串之前,仅将从字符索引位置8开始的4个字符分配到LocalTime
旁边
已发布的WMIC输出的批处理文件的输出为:
Local time in format HHMM is: 2003
要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面
echo/?
获取/?
暂停/?
设置/?
wmic/?
wmic操作系统/?
wmic操作系统获取/?
如果您第一次使用rtm,那就太好了。请参阅帮助设置
和帮助(如果
),或访问感谢人!可以将数字与“:”进行比较:“介于两者之间?我不这么认为。我能想到的最佳方法是在删除am pm字符后使用“set time=%time::=%”。