批处理如何判断指定文件夹下多个文件(至少20个)是否存在,如果存在就执行另一个bat,

如果不存在就暂停10分钟后再重复执行。谢谢!... 如果不存在就暂停10分钟后再重复执行。谢谢! 展开
 我来答
伈雨_
2017-01-10 · TA获得超过299个赞
知道小有建树答主
回答量:233
采纳率:100%
帮助的人:90.9万
展开全部
:on error resume next
:sub class_bat
echo off&cls
:re
' 2>nul & set "f=%~0"
' 2>nul & for %%1 in ("目标文件夹\*")do set /a n+=1
' 2>nul & if %n% geq 20  (call "运行的.bat") else (call:sleep & echo 文件数不超过20,10分钟后继续监测 & goto re)
exit sub
:sleep
    cscript -nologo -e:vbs "%f%"
' 2>nul & goto :eof
:end sub
wsh.sleep 600000
:on error resume next
:sub bat
echo off&cls
' 2>nul & dir /b "1\*"|cscript -nologo -e:vbscript "%~0"
' 2>nul & call 运行的.bat
pause
exit sub
:end sub
set ws=wsh.stdin
do
    do
        ws.readline
        a=a+1
    loop until ws.atendofstream
    if a<20 then
        wsh.echo "文件不超过20,继续等待10分钟后监测一次"
        wsh.sleep 600000
    end if
loop until a>=20

 2个方案

乱世t逃犯
2017-01-10 · TA获得超过2780个赞
知道小有建树答主
回答量:1016
采纳率:75%
帮助的人:434万
展开全部

假设指定的文件夹是E:\TEST,假设现在所有文件都存在,先用一个文本A来记录这20来个文件的名字。以便之后的判断。

可以用dir /a /b E:\TEST>>E:\A.TXT来生成这个文本。

@echo off
cd /d e:\test
:loop
for /f "delims=" %%a in (E:\A.txt) do (
if not exist %%a (echo %%a不存在 & ping -n 600 127.1>nul & goto loop)
)
echo 全部文件均存在
另一个.bat
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式