您可以使用“检查缓冲区”来执行此操作。我的意思是每个文件都会对 check 变量计数 +1。现在,如果总和与检查文件的数量匹配,它将执行特定的操作。看看下面:
@echo off
set sum=0
IF EXIST "abc.wxs" (
set /a sum=%sum%+1
)
IF EXIST "verify.wxs" (
set /a sum=%sum%+1
)
IF EXIST "start.wxs" (
set /a sum=%sum%+1
)
IF EXIST "myname.wxs" (
set /a sum=%sum%+1
)
IF EXIST "verifyme.wxs" (
set /a sum=%sum%+1
)
IF EXIST "abc.dll" (
set /a sum=%sum%+1
)
if sum==4 (
set sum=0
goto makeadmin
)
if sum==6 (
set sum=0
<insert whatever you want here>
)
pause
一般来说,我发现使用带有数字的计数器非常有用。对我来说方便多了。我希望它有所帮助。
PS我在2个“if”的每种情况下都设置了sum = 0,因为我没有测试过这个(因为我现在在linux上)我担心如果你回到程序的开头,你'总和将超过数字 6。
编辑
通过使用 FOR 循环,可以缩短上述内容并使其更易于维护。此外,set sum=0
在 IF 中也不需要。最后,变量不需要在 SET /A 中扩展。set /a sum=sum+1
工作,一样set /a sum+=1
@echo off
set sum=0
for %%F in (
abc.wxs
verify.wxs
start.wxs
myname.wxs
verifyme.wxs
abc.dll
) do if exist %%F set /a sum+=1
if sum==4 goto makeadmin
if sum==6 REM do something else