[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

举例,

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

RAVAntivirus
Reference Assemblies
Rockstar Games
SQLite Expert
Uninstall Information



最终结果




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


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


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

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


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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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

评分人数

TOP

回复 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
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 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

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

显示正确就把第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

评分人数

TOP

回复 4# Batcher


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

不过楼下的大大给的代码测试成功了

TOP

本帖最后由 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
复制代码

TOP

回复 7# buyiyang


    没有评分了,感谢老哥的回复,上面的已经解决了

TOP

回复 6# 未知2022


    谢谢提醒,以添加 /s 参数。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# Batcher


    好的,感谢各位大大的回复!!

TOP

返回列表