我有一个为我创建日志的批处理脚本文件,它每10分钟运行一次 我想要它做的是每50分钟将文件的内容附加到另一个文件并清理原始文件。
我的问题是我的if语句中的命令什么都不做,即使我把最简单的命令如echo working或者其他东西。 我的代码看起来像这样
SET check=%time:~3,2%
SET /a res=%check%%%50
IF %res%==0 (
type logFile.txt >> AllLogs.txt
echo.> logFile1.txt
)
答案 0 :(得分:1)
两个问题:
%res%==0
结果为true
当且仅当前分钟为0
或50
时(向右突破的概率)时间约为2:60
,例如3.33 %
); SET /a res=%check%%%50
could fail if current minute is either 8
or 9
到目前为止%check%
结果为08
或09
。使用SET /a res=100%check%%%50
(事实上,10%check%%%50
就足够了。)八进制表示法可能会令人困惑 - 所有数字值都会启动 零被视为八进制,但
08
和09
不是有效的八进制 位数。
然后(硬编码check
无法等待):
==>SET check
check=09
==>SET /a res=%check%%50
Invalid number. Numeric constants are either decimal (17),
hexadecimal (0x11), or octal (021).
==>SET res
Environment variable res not defined
==>SET /a res=100%check%%50
9
==>
答案 1 :(得分:0)
我使用GOTO修复了这个问题:1
并将我想要的命令放在:1 它解决了我的问题
SET check=%time:~3,2%
IF %check%==50 GOTO :1
:1
@type
@echo