如何让bat脚本循环执行?

比较文件(fc)。、直到文件相同停止循环。怎么编写

让bat脚本循环执行有以下两种方法:

第一、可以直接加个%0,即执行本身,实现循环。
第二、用goto命令,去到你要重复的开头,如果要限制次数,可以先set 一个值,循环一次减1,条件命令到0退出,实现循环。

若使用goto命令执行循环,有如下代码可供参考:
@echo off

set n=0

:abc

set /a n+=1

if %n%==60 exit

goto abc
每次执行n+1,当n=60就退出

进行跳转,之前可以加上判断条件,判断是否跳到开头继续执行

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
cmd里有一个goto :标签,进行跳转,之前可以加上判断条件,判断是否跳到开头继续执行
找了个例子:
@echo off
set n=0
:abc
set /a n+=1
if %n%==60 exit
goto abc
每次执行n+1,当n=60就退出追问

我不要循环多少次退出。我要比较发现相同后停止(屏幕等待)

追答

fc判定结果返回的%errorlevel%有三种情况

文件内容相同 值为0
不相同值为1
有一个文件不存在值为2
所以加上%errorlevel%的判断即可
@echo off
:abc
rem 你自己添加
fc file1 file2
if %errorlevel%==0 pause else (goto abc)
rem 你自己添加

追问

如何让它持续循环呢。
、或者说循环语句是什么

追答

if %errorlevel%==0 goto :next else (goto abc)

上面这个就是控制循环语句,当fc比较的文件相同,跳到next标签继续执行,否则到abc(循环入口)继续执行,相当于直接又进了循环。当跳到next标签后就可以加入后续处理的语句,记得在结尾加上goto abc,就会再跳到循环入口,进入循环。

本回答被提问者和网友采纳
第2个回答  2013-09-26
fc file1 file2|findstr /i "找不到相异处">nul 2>nul &&goto :end

:end
pause
exit
相似回答