Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理:我想在凌晨5点后调用一个命令,但不管发生什么情况,它都会在凌晨5点之前输出它_Batch File_Command_Dos_Timed - Fatal编程技术网

Batch file 批处理:我想在凌晨5点后调用一个命令,但不管发生什么情况,它都会在凌晨5点之前输出它

Batch file 批处理:我想在凌晨5点后调用一个命令,但不管发生什么情况,它都会在凌晨5点之前输出它,batch-file,command,dos,timed,Batch File,Command,Dos,Timed,都不是 或 按我需要的方式工作 这将使其在10 am时输出大于5 am。它只说明即使是上午10点,也不到5点。最重要的是,如果我将时间设置为上午5点,它仍然会说时间小于上午5点,而不等于上午5点 它只在一个位数的任何时间执行此操作,因此0-9(即上午12点到9点)。任何时间都是两位数,所以10-23(即上午10点到晚上11点)都能起作用并说出正确的话。试试这个: @echo off set hh=!tm:~0,2 set mm=!tm:~3,2 set ss=!tm:~5,2 set ms=!

都不是

按我需要的方式工作

这将使其在10 am时输出大于5 am。它只说明即使是上午10点,也不到5点。最重要的是,如果我将时间设置为上午5点,它仍然会说时间小于上午5点,而不等于上午5点

它只在一个位数的任何时间执行此操作,因此0-9(即上午12点到9点)。任何时间都是两位数,所以10-23(即上午10点到晚上11点)都能起作用并说出正确的话。

试试这个:

@echo off

set hh=!tm:~0,2
set mm=!tm:~3,2
set ss=!tm:~5,2
set ms=!tm:~7,2

if !hh! gtr **05** (
    echo gtr 5
    pause
    goto success
)


pause
goto fail

:success
echo Success!
pause
exit

:fail
echo Fail!
pause
exit
试试这个:

@echo off

set hh=!tm:~0,2
set mm=!tm:~3,2
set ss=!tm:~5,2
set ms=!tm:~7,2

if !hh! gtr **05** (
    echo gtr 5
    pause
    goto success
)


pause
goto fail

:success
echo Success!
pause
exit

:fail
echo Fail!
pause
exit
结果:

@ECHO OFF
SETLOCAL
SET testvalues=" 1" " 4" " 5" " 6" "10" "12" "13" "19" "20" "23" "01" "04" "05" "06" "08" " 0" 
FOR %%i IN (%testvalues%) DO CALL :test2 %%i
echo==================================
FOR %%i IN (%testvalues%) DO CALL :test %%i
GOTO :eof
:test
SET value=%~1
SET "HH="
FOR /f "delims=0" %%a IN ("%value:~0,2%") DO SET /a HH=%%a
IF %HH% GTR 5 (ECHO Alert! FOR %1 ) ELSE (ECHO Silent FOR %1 )

GOTO :EOF
:test2
SET value=%~1
SET "HH="

SET /a HH=1%value: =0%
IF %HH% GTR 105 (ECHO Alert! FOR %1 ) ELSE (ECHO Silent FOR %1 )

GOTO :EOF
注:小时数为10、20和0时的纠正行为

结果:

@ECHO OFF
SETLOCAL
SET testvalues=" 1" " 4" " 5" " 6" "10" "12" "13" "19" "20" "23" "01" "04" "05" "06" "08" " 0" 
FOR %%i IN (%testvalues%) DO CALL :test2 %%i
echo==================================
FOR %%i IN (%testvalues%) DO CALL :test %%i
GOTO :eof
:test
SET value=%~1
SET "HH="
FOR /f "delims=0" %%a IN ("%value:~0,2%") DO SET /a HH=%%a
IF %HH% GTR 5 (ECHO Alert! FOR %1 ) ELSE (ECHO Silent FOR %1 )

GOTO :EOF
:test2
SET value=%~1
SET "HH="

SET /a HH=1%value: =0%
IF %HH% GTR 105 (ECHO Alert! FOR %1 ) ELSE (ECHO Silent FOR %1 )

GOTO :EOF

注意:小时=10、20和0的纠正行为在小时和分钟内效果很好,但似乎不想在位置~5,2工作几秒钟。我在
:~6,2
(查看:
23:32:39,70
)在~6,2运行它,它似乎选择了它是否要停止。它在0上非常挑剔,它只是飞过并说缺少操作。
echo%time%
的输出是什么?我发现它只有在0秒的任何时间通过时才有输出。即使我不想在0秒时阻止它。而且现在它似乎更稳定,试图让它在15秒停止,但提前1毫秒停止,这并不坏。代码:@ECHO OFF:time ECHO%time%FOR/f“tokens=1*delims=0”%%a IN(“$0%time:~6,2%”)设置/a SS=%b如果%SS%eq 15转到成功转到时间:success ECHO success finally pause goto time:success ECHO success finally pause goto time在几小时和几分钟内都很有效,但似乎不想在~5,2秒的位置工作。我的秒数在:~6,2(请查看:
23:32:39,70
)我在~6,2处运行了它,它似乎选择了它想停还是不停。它在0处非常挑剔,它只是飞过并说缺少操作。
echo%time%
的输出是什么?我发现它只在0秒的任何时候运行。即使我没有试图在0秒时停止它。现在它似乎也在运行尝试使其在15秒停止时更稳定,但提前1毫秒停止并不坏。代码:@ECHO OFF:time ECHO%time%for/f“tokens=1*delims=0”%%a IN(“$0%time:~6,2%”)设置/a SS=%%b如果%SS%eq 15转到成功转到时间:成功回声成功最后暂停转到时间
Silent FOR " 1" 
Silent FOR " 4" 
Silent FOR " 5" 
Alert! FOR " 6" 
Alert! FOR "10" 
Alert! FOR "12" 
Alert! FOR "13" 
Alert! FOR "19" 
Alert! FOR "20" 
Alert! FOR "23" 
Silent FOR "01" 
Silent FOR "04" 
Silent FOR "05" 
Alert! FOR "06" 
Alert! FOR "08" 
Silent FOR " 0" 
=================================
Silent FOR " 1" 
Silent FOR " 4" 
Silent FOR " 5" 
Alert! FOR " 6" 
Silent FOR "10" 
Alert! FOR "12" 
Alert! FOR "13" 
Alert! FOR "19" 
Silent FOR "20" 
Alert! FOR "23" 
Silent FOR "01" 
Silent FOR "04" 
Silent FOR "05" 
Alert! FOR "06" 
Alert! FOR "08" 
Missing operand.
5 was unexpected at this time.