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 批处理脚本中if语句中的命令,用于附加到文件并创建新文件_Batch File - Fatal编程技术网

Batch file 批处理脚本中if语句中的命令,用于附加到文件并创建新文件

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

我有一个为我创建日志的批处理脚本文件,它每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
)两个问题:

  • 逻辑中
    %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