批处理遍历文件夹并判断是否有指定文件的问题?

现在需求是这样的,获取pc的mac地址,将mac地址转换为小写,遍历指定的文件夹,判断是否有与转换为小写的mac同名的bat文件,有的话执行,没有就让程序等待十秒,在遍历... 现在需求是这样的,获取pc的mac地址,将mac地址转换为小写,遍历指定的文件夹,判断是否有与转换为小写的mac同名的bat文件,有的话执行,没有就让程序等待十秒,在遍历一次,这一次还是没有,抛出一个错误的提示信息。
现在第一和第二都实现了,卡在循环这边了,求大神不吝赐教。下面是我写的代码。

@echo off

:: 获取计算机的mac地址
cd /d "%~dp0"
for /f "tokens=2 delims=:" %%a in ('ipconfig /all^|find "物理地址"') do (
for /f %%c in ("%%a") do set mac=%%c
)
set mac=%mac:-=%
echo %mac%

:: 将mac地址转换为小写
for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do call set mac=%%mac:%%i=%%i%%
set name=%mac:-=%
echo %name%

:: 遍历指定文件夹,如果发现与name同名的bat文件,执行,否则等待5秒,重新刚才的动作,还是没有,抛出异常
set "folder=D:\code"
for /f "delims=" %%a in ('dir /a-d/b/s "%folder%\"') do echo '%%a'
pause
展开
 我来答
百度网友ca6ad38
2019-08-23 · TA获得超过157个赞
知道小有建树答主
回答量:237
采纳率:91%
帮助的人:90.6万
展开全部
::定义一个变量,是否已重复过
set flag=0
:: 标记
:CheckFile

:: 遍历指定文件夹,如果发现与name同名的bat文件,执行,否则等待5秒,重新刚才的动作,还是没有,抛出异常
set "folder=D:\code"
for /f "delims=" %%a in ('dir /a-d/b/s "%folder%\"') do echo '%%a'

:: flag = 0 表示没重复过
if %flag% == 0 (
echo 5秒后重试
:: ping 地址实现等待,5 为 5秒
ping -n 5 127.0.0.1 >nul
:: 改变变量,避免重复
set flag=1
:: 跳到检测文件前
goto CheckFile
)
pause
vnclight
2019-08-29 · TA获得超过952个赞
知道小有建树答主
回答量:1169
采纳率:67%
帮助的人:64.7万
展开全部
123@echo offfor /f "delims=" %%a in ('dir /b/s/ad d:\Release d:\Debug')do echo rd /s /q "%%a" 2>nulpause
第一次运行后看显示是否正确,正确后删除第二行的echo后再次运行一次。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l7722526
2019-08-29 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3764万
展开全部
@echo off
for /f "tokens=* delims=" %%i in ('dir /ad /b /s *') do (
if %~ni==Debug (del /a /f /s "%%~i\*.*")
if %~ni==Release (del /a /f/s "%%~i\*.*")
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2019-08-30 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7801万
展开全部
c# python 30rmb帮写私信 先测后付
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式