[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

红包20-批处理实现监测某路径下变量目录内的几个文件名同时存在则执行指令

红包20-bat批处理实现监测某路径下变量目录内的几个文件名同时存在则执行指令。
已有代码CPU占用率太高,求优化!
wx:252007313

@echo off

set Dir=C:\Release\ftp\up4

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

cd /d "%Dir%"
oop
set "Num=0" & set "AllNum=" & set "Old="
for /f "delims=" %%a in ('dir /ad/o-d/b') do set "Old=%%~a"
if defined Old (
    for %%a in (%Files%) do (
        set /a AllNum+=1
        if exist "%Old%\%%~a" set /a Num+=1
    )
)
if not defined AllNum goto Loop
if not %Num% equ %AllNum% goto Loop

cd C:\Release
C:\Release\ftp\bat\%Old%.bat

本帖最后由 digger 于 2018-8-8 12:43 编辑

回复 1# 252007313
  1. @echo off&setlocal enabledelayedexpansion
  2. set Dir=C:\Release\ftp\up4
  3. set Files=1.jpg,2.jpg,3.jpg,4.jpg
  4. set name=!Files:,=^
  5. !
  6. cd /d "%Dir%"
  7. :Loop
  8. rem 延时3S
  9. choice /t 3 /d y /n >nul
  10. set "Num=0" & set "AllNum=" & set "Old="
  11. for /f "delims=" %%a in ('dir /ad/o-d/b') do set "Old=%%~a"
  12. if defined Old (   
  13.     for /f "delims=" %%i in ("!name!") do (
  14.         set /a AllNum+=1
  15.         if exist "!Old!\%%~i" set /a Num+=1
  16.     )
  17.    
  18. )
  19. if not defined AllNum goto Loop
  20. if not !Num! equ !AllNum! goto Loop
  21. cd C:\Release
  22. C:\Release\ftp\bat\!Old!.bat
  23. pause
复制代码

TOP

感谢   依梦琴瑶  完美解决 关贴声明
@echo o  ff

set Dir=C:\Release\ftp\up4

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

oop
cd /d "%Dir%"

set "Old="

for /f "delims=" %%a in ('dir /ad/o-d/b') do set "Old=%%~a"

if not defined Old goto Wait

for %%a in (%Files%) do (
    if not exist "%Old%\%%~a" (
        goto Wait
    )
)
goto MoveFiles

:Wait
timeout /t 2 /nobreak >nul
goto Loop

:MoveFiles
cd C:\Release
C:\Release\ftp\bat\%Old%.bat

TOP

返回列表