根据时间批量更改变量

问题描述 投票:0回答:1

我想根据一天中的时间更改变量状态。

@echo off
:loop
SETLOCAL enabledelayedexpansion
set flag=1

if time is between 0 AND 12 set flag = 0
if time is between 12 AND 24 set flag = 1

for %%x in (51 57 ) do (
    
    if %flag% == 1 (
    Do Stuff
    )

    if %flag% == 0 (
    Do Other Stuff
    )   
)

timeout /t 0

goto loop

如果 %hour% LSS 12 设置标志=0 如果 %hour% GTR 12 设置标志=0

batch-file
1个回答
0
投票

首先,您需要获取日期,最好采用固定格式,独立于区域设置(不像`%date%),然后提取小时并根据它设置您的标志。有多种方法,这是其中之一:

for /f "tokens=2 delims=: " %%a in ('Robocopy.exe \: . /NJH /L^|findstr /b "2"') do if 1%%a lss 112 (set flag=0) else (set flag=1)

这将时间 00:00 到 11:59 设置为 flag=0,将时间 12:00 到 23:59 设置为 flag=1。

注意:我在小时中添加了

1
(因此
09
变成了
109
),因为以零开头的数字被视为八进制,而
08
09
是无效的八进制数字,导致语法错误)。

下午不需要第二个

if
,只需一个
if - else

© www.soinside.com 2019 - 2024. All rights reserved.