Board logo

标题: [文件操作] for循环嵌套只能遍历最外层第一个文件夹 [打印本页]

作者: wangxiaodong    时间: 2018-1-6 10:15     标题: for循环嵌套只能遍历最外层第一个文件夹

请各位大哥指教,为什么这段代码遍历最外层第一个文件夹后就结束了。
setlocal enabledelayedexpansion
for /f %%i in ('dir /ad /b')do (
for /f %%j in ('dir /ad /b %%~dpi%%i')do (
set  n=0
for /f %%k in ('dir /a-d /b %%dpi%%i\%%j\*.txt
)do  ( set /a n=!n!+1





作者: hlzj88    时间: 2018-1-6 12:25

dir /s

参考dir/?
作者: wangxiaodong    时间: 2018-1-6 12:34

回复 我的意思是和本批处理文件同一目录下有3个文件夹,这段代码只能对第一个文件夹循环,其他两个文件夹不能正常循环。2# hlzj88
作者: hlzj88    时间: 2018-1-6 12:55

本帖最后由 hlzj88 于 2018-1-6 12:57 编辑

回复 3# wangxiaodong
第一个for 里的dir 加参数 /s,或者其他的都加,,你的代码我没有细看。你自己调整。
作者: wangxiaodong    时间: 2018-1-6 15:14

与/s参数没关系
作者: /zhqsystem/zhq    时间: 2018-1-6 18:10

本帖最后由 /zhqsystem/zhq 于 2018-1-6 18:11 编辑

for /f "delims=" %%i in ('dir/ad/b "%cd%\*.*"')do for /f "delims=" %%j in ('dir/ad/b "%cd%\%%~nxi\*.*"')do (
set n=0
for /f "delims=" %%k in ('dir/a-d/b "%cd%\%%~nxi\%%~nxj\*.txt"')do (
  for /f "delims=" %%k in ("%cd%\%%~nxi\%%~nxj\%%k")do (
   set /a n+=1
   echo,"%%~nxi\%%~nxj" !n!: "%%~fk"
  )
)
)
作者: wangxiaodong    时间: 2018-1-6 18:50

回复 两次使用%%k是啥意思?6# /zhqsystem/zhq
作者: /zhqsystem/zhq    时间: 2018-1-6 21:15

回复 7# wangxiaodong
呃呃只是扩展而已,没有实际用途,对上一次的引用进行完整补充
作者: wangxiaodong    时间: 2018-1-7 11:06

回复 哦,谢谢!8# /zhqsystem/zhq




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2