在批处理脚本中的if语句中命令追加到文件并创建新文件

时间:2015-06-28 08:19:12

标签: 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

2 个答案:

答案 0 :(得分:1)

两个问题:

  • 逻辑%res%==0结果为true当且仅当前分钟为050时(向右突破的概率)时间约为2:60,例如3.33 %);
  • 脚本SET /a res=%check%%%50 could fail if current minute is either 8 or 9到目前为止%check%结果为0809。使用SET /a res=100%check%%%50(事实上,10%check%%%50就足够了。)
  

八进制表示法可能会令人困惑 - 所有数字值都会启动   零被视为八进制,但0809不是有效的八进制   位数。

然后(硬编码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