我知道如何在命令提示符下检查时间,但我想检查它是否大于或等于数字,我希望下面的例子是清楚的。
@echo off
for /f "tokens=*" %%a in ('time /t') do (
set t=%%a
)
set "dt=%t%"
if "%dt%" <= "12:00" (
echo it is morning
pause
)
if "%dt%" >= "12:00" (
echo It is night
pause
)
timeout /t 10 /nobreak>nul
我试过1200和12:00,有没有办法获得变量的前2个字符?我认为这是最简单的方法。
答案 0 :(得分:0)
选择变量dt
的前2个字符,使用
set "selection=%dt:~0,2%"
0
是起始位置,2
是长度。
请参阅文档提示中的set /? |more
<强> BUT 强>
if
命令对比较运算符有非常具体的要求 - 而>
和<
用于重定向文件。
请参阅文档提示中的if /?
。
答案 1 :(得分:0)
有几种方法可以解决这个问题。我认为这是最简单的一个:
@echo off
set "t=%time::=%"
set /A "dt=t"
if %dt% leq 120000 (
echo it is morning
pause
)
if %dt% geq 190000 (
echo It is night
pause
)
set "t=%time::=%"
命令获取%time%
动态变量,该变量具有&#34; HH:MM:SS.CC&#34;格式,并指定&#34; HHMMSS.CC&#34;到t
变量。然后,set /A "dt=t"
命令获取第一个点的数字:&#34; dt = HHMMSS&#34;。之后,只需将这样的值与没有引号进行比较。