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

[文本处理] [已解决]求批处理列出当前文件夹所有文件夹里面的文件数量,包含子文件夹

[复制链接]
发表于 2022-3-31 18:54:40 | 显示全部楼层 |阅读模式
举例,

比如我打开某个文件夹,里面一级文件夹是这样的

RAVAntivirus
Reference Assemblies
Rockstar Games
SQLite Expert
Uninstall Information



最终结果




444RAVAntivirus
66464Reference Assemblies
66455Rockstar Games
7565SQLite Expert
5666Uninstall Information


其数字是里面每一个文件夹里面包含子文件夹的文件的数量


目前我有一个bat,但是他仅仅会给出这里面一级目录,不会包含子文件夹

比如RAVAntivirus目录实际上有444文件,但是打开第一层目录只有1个文件,结果就只有1而不是444


求大佬帮帮忙,求之前已经找了很久了

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2022-3-31 19:27:35 | 显示全部楼层
本帖最后由 buyiyang 于 2022-3-31 19:37 编辑

  1. @echo off
  2. set /p ml=请输入包含路径的目录:
  3. cd /d "%ml%"
  4. set n=0
  5. for /f "delims=" %%i in ('dir /a-d /b /s') do set /a n+=1
  6. echo 该目录共有%n%个文件
  7. pause>nul
复制代码

评分

参与人数 1技术 +1 收起 理由
未知2022 + 1 感谢回复

查看全部评分

发表于 2022-3-31 20:21:46 | 显示全部楼层
回复 1# 未知2022


test_1.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /ad') do (
  5.     set n=0
  6.     for /f "delims=" %%j in ('dir /b /s /a-d "%%i"') do (
  7.         set /a n+=1
  8.     )
  9.     echo !n!%%i
  10. )
  11. pause
复制代码
发表于 2022-3-31 20:23:26 | 显示全部楼层
回复 1# 未知2022


test_2.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /ad') do (
  5.     for /f "tokens=1 delims=:" %%j in ('dir /b /s /a-d "%%i" ^| findstr /n .*') do (
  6.         set n=%%j
  7.     )
  8.     echo !n!%%i
  9. )
  10. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
未知2022 + 1 感谢老大的回复

查看全部评分

发表于 2022-3-31 20:28:52 | 显示全部楼层
显示正确就把第8行的REM删掉
  1. @echo off & cd /d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. for /d %%i in (*) do (
  4.         echo %%i
  5.         set "file_num="
  6.         for /f %%a in ('dir /s /a-d "%%i\*" ^| findstr "个文件"') do set "file_num=%%a"
  7.         echo !file_num!%%i
  8.         REM rename "%%i" "!file_num!%%i"
  9.         echo -------------
  10. )
  11. pause&exit
复制代码

评分

参与人数 1技术 +1 收起 理由
未知2022 + 1 感激不尽,测试成功

查看全部评分

 楼主| 发表于 2022-3-31 20:42:10 | 显示全部楼层
回复 4# Batcher


    老大给的两个都测试了,不成功,没有正确的提示,

不过楼下的大大给的代码测试成功了
发表于 2022-3-31 20:55:20 | 显示全部楼层
本帖最后由 buyiyang 于 2022-3-31 21:03 编辑

回复 6# 未知2022


    大佬可能有点疏忽,没有找子目录,但我测试了代码是对的

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. for /f "delims=" %%i in ('dir /ad /b') do (
  5.        set n=0
  6. for /f "delims=" %%j in ('dir /a-d /b /s "%%i"') do (
  7.        set /a n+=1
  8.           )
  9. echo !n!%%i
  10. )
  11. pause>nul
复制代码
 楼主| 发表于 2022-3-31 21:04:30 | 显示全部楼层
回复 7# buyiyang


    没有评分了,感谢老哥的回复,上面的已经解决了
发表于 2022-3-31 21:21:55 | 显示全部楼层
回复 6# 未知2022


    谢谢提醒,以添加 /s 参数。
 楼主| 发表于 2022-3-31 21:32:25 | 显示全部楼层
回复 9# Batcher


    好的,感谢各位大大的回复!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 07:21 , Processed in 0.017900 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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