bat命令,如何只遍历当前文件夹及下一层子文件夹
想遍历当前文件夹下的每一个子文件夹,检测到子文件夹中含有某文件时,对该文件夹进行操作。(不再处理下一子文件夹的内容)for/d遍历可以在里面再嵌一层for/d吗?我试了...
想遍历当前文件夹下的每一个子文件夹,检测到子文件夹中含有某文件时,对该文件夹进行操作。(不再处理下一子文件夹的内容)
for /d 遍历可以在里面再嵌一层for /d吗?我试了下好像不太对
/f 的话遍历了所有子文件夹,不是我需要的 展开
for /d 遍历可以在里面再嵌一层for /d吗?我试了下好像不太对
/f 的话遍历了所有子文件夹,不是我需要的 展开
2个回答
展开全部
@echo off
::设置要检查的文件
set File=mytest.doc
for /d %%a in (*) do (
if exist "%%~a\%File%" (
call :DoNow "%%~a"
)
)
pause
exit
:DoNow
::让脚本临时进入相关子目录中
pushd "%~1"
echo 这里写您在对应的文件夹中做相关处理
::退出子目录
popd
goto :eof
不知道这样符不符合您希望的效果?
更多追问追答
追答
代码不可能出现找不到DoNow标签啊!
倒是您set File那里写法就是错误的,在bat中的书写格式不能拿其它语言的格式来写,因为在bat中对空格是敏感的,而其它语言可能不敏感。如果按照您那样写,那么调用的File就要多一个空格,变成%File %而不是%File%,同时等于号后面的文件名被调用时也会在前面多了一个空格。导致文件名和实际的不同。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
set @=有问题联系&set #=Q&set/az=0x53b7e0b4
title %@% +%#%%#% %z%
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /ad/b') do (
for /f "delims=" %%b in ('dir /ad/b "%%a"') do (
echo;%%a\%%b\
)
)
echo;%@% +%#%%#% %z%
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询