找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28604|回复: 8

[文件操作] for循环嵌套只能遍历最外层第一个文件夹

[复制链接]
发表于 2018-1-6 10:15:55 | 显示全部楼层 |阅读模式
请各位大哥指教,为什么这段代码遍历最外层第一个文件夹后就结束了。
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




发表于 2018-1-6 12:25:38 | 显示全部楼层
dir /s

参考dir/?
 楼主| 发表于 2018-1-6 12:34:56 | 显示全部楼层
回复 我的意思是和本批处理文件同一目录下有3个文件夹,这段代码只能对第一个文件夹循环,其他两个文件夹不能正常循环。2# hlzj88
发表于 2018-1-6 12:55:42 | 显示全部楼层
本帖最后由 hlzj88 于 2018-1-6 12:57 编辑

回复 3# wangxiaodong
第一个for 里的dir 加参数 /s,或者其他的都加,,你的代码我没有细看。你自己调整。
 楼主| 发表于 2018-1-6 15:14:26 | 显示全部楼层
与/s参数没关系
发表于 2018-1-6 18:10:25 | 显示全部楼层
本帖最后由 /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"
  )
)
)
 楼主| 发表于 2018-1-6 18:50:55 | 显示全部楼层
回复 两次使用%%k是啥意思?6# /zhqsystem/zhq
发表于 2018-1-6 21:15:10 | 显示全部楼层
回复 7# wangxiaodong
呃呃只是扩展而已,没有实际用途,对上一次的引用进行完整补充
 楼主| 发表于 2018-1-7 11:06:24 | 显示全部楼层
回复 哦,谢谢!8# /zhqsystem/zhq
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:26 , Processed in 0.019442 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表