bat命令执行循环判断功能2

求bat命令实现如下功能:
循环判断
判断路径C:\Release\ftp\up下是否有目录。
如果有:判断该目录下是否同时有1.jpg、2.jpg、3.jpg。
如果有:执行start C:\Release\ftp\bat\该目录名.bat
如果没有:重复判断

第1个回答  2017-09-03
@echo off & setlocal enabledelayedexpansion

set Dir_A=C:\Release\ftp

set Dir_B=up

set Dir_C=bat

set Files=1.jpg,2.jpg,3.jpg

cd /d "%Dir%"
del a.* 2>nul
:Loop
cls & echo 正在循环检测中,请耐心等待。。。
for /f "delims=" %%a in ('dir /ad/b %Dir_B%\*') do (
    set "Num=0" & set "AllNum="
    for %%b in (%Files%) do (
        set /a AllNum+=1
        if exist "%Dir_B%\%%~a\%%~b" set /a Num+=1
    )
    if defined AllNum (
        if !Num! equ !AllNum! (echo start "执行 %%~a.bat" "%Dir_C%\%%~a.bat")>>a.tmp
    )
)
set /a Count+=1
title 已累计执行扫描 %Count% 次。
if not exist a.tmp goto Loop
echo, & echo 发现目标,准备执行脚本,请按任意键开始。
(echo @echo off
echo echo 开始执行相应脚本。
echo cd /d %%~dp0
type a.tmp
echo exit)>a.bat
pause>nul
start /wait "执行脚本" a.bat
del a.* 2>nul


我的脚本相对于另一个网友写的,稍微复杂了点,主要就是多了相关提示语,以及可以自定义路径,检查的文件等设置,自己选用吧!而且绝对有循环检测的。而另一个网友只检测一次。

追问

一直提示循环检测 没成功运行 bat呀????

追答

不可能吧!我测试过啊!

追问

一直没执行 bat

本回答被网友采纳
第2个回答  2017-09-03

写好了,自己撸吧:

@echo off &setlocal enabledelayedexpansion
dir /ad /b "C:\Release\ftp\up" >ftp.1st
for /f "delims=" %%c in (ftp.1st) do (
set Sum=0
for /l %%d in (1 1 3) do if exist "C:\Release\ftp\up\%%c\%%d.jpg" set /a Sum+=1
if !Sum! equ 3 start "C:\Release\ftp\bat\%%c.bat"
)
del /f /q ftp.1st &echo 运行结束! 
pause>nul

追问

谢谢 新打开了个 bat窗口 但是没有执行 bat内容

本回答被提问者采纳
相似回答