Batch file 批处理脚本中if语句中的命令,用于附加到文件并创建新文件
我有一个为我创建日志的批处理脚本文件,它每10分钟运行一次 我希望它每50分钟将文件的内容附加到另一个文件中,并清理原始文件 我的问题是if语句中的命令不起任何作用,即使我使用了最简单的命令,比如echo working之类。 我的代码如下所示Batch file 批处理脚本中if语句中的命令,用于附加到文件并创建新文件,batch-file,Batch File,我有一个为我创建日志的批处理脚本文件,它每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
SET check=%time:~3,2%
SET /a res=%check%%%50
IF %res%==0 (
type logFile.txt >> AllLogs.txt
echo.> logFile1.txt
)两个问题:
- 在逻辑中:
当且仅当当前分钟为%res%==0
或0
(命中正确时间的概率约为50
,例如2:60
)李>3.33%
- 在脚本编写中:
到目前为止,设置/a res=%check%%%50
结果为%check%%
或08
。使用09
(事实上,SET/a res=100%检查%%50
就足够了)10%检查%%50
08
和09
不是有效的八进制
数字
然后(硬编码检查as不能等待):
我使用GOTO:1解决了这个问题
把我想要的命令放在下面:1
它解决了我的问题
SET check=%time:~3,2%
IF %check%==50 GOTO :1
:1
@type
@echo
尝试使用数字比较,而不是字符串如果%res%eq 0
您在这两个帐户上都是对的%%操作符也运行了0分钟,我决定每小时运行一次,并将我的等式设置为如下:SET check=%time:~3,2%IF%check%==50 GOTO:1
SET check=%time:~3,2%
IF %check%==50 GOTO :1
:1
@type
@echo