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

[文本处理] 批处理怎样扫描计数当前目录内的子文件夹和文件数量?

[复制链接]
发表于 2023-5-25 16:36:08 | 显示全部楼层 |阅读模式
研究好久了不是计数数量错误,就是无法运行,有没有大佬带带我
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set/p d=请输入精简Roms的盘符并回车【例如C:\Roms,只需要输入C】:
  4. set /a n=0,a=0,b=0,c=0
  5. for /f "delims=" %%i in ('dir "%d%:\Roms" /B /A:D') do set /a n+=1
  6. for /r  "%d%:\Roms" %%a in (*.*) do set /a c+=1
  7. echo 共【%n%】个文件夹和【%c%】个文件
  8. pause
  9. for /f "delims=" %%i in ('dir "%d%:\Roms" /B /A:D') do (
  10. for /f "delims=" %%a in ('dir /b "%d%:\Roms\%%i"') do (
  11.         xcopy "Roms\%%i\media\%%~na" "%d%:\Roms\%%i\media\%%~na" /E /Y >nul 2>nul
  12. if errorlevel 1 (set a+=1) else set /a b+=1
  13. echo 【%%i】%%~na【预览素材已复制】
  14. ))
  15. echo 已复制成功 !b! 个,失败!a!个!
  16. echo 按任意键退出
  17. pause>nul
  18. Exit
复制代码
 楼主| 发表于 2023-5-25 16:38:21 | 显示全部楼层
发表于 2023-5-25 21:04:03 | 显示全部楼层
回复 2# chen007


   dir /s 显示指定目录和所有子目录中的文件。
发表于 2023-5-25 22:46:25 | 显示全部楼层
回复 1# chen007


把你的第5行、第6行改成这样试试:
  1. for /f %%i in ('dir /b /ad "%d%:\Roms"') do set /a n+=1
  2. for /f %%i in ('dir /b /a-d "%d%:\Roms"') do set /a c+=1
复制代码
 楼主| 发表于 2023-5-26 14:20:34 | 显示全部楼层
回复 4# Batcher


    谢谢下午回家试一下
 楼主| 发表于 2023-5-26 16:16:13 | 显示全部楼层
回复 4# Batcher


    @echo off
setlocal enabledelayedexpansion
set/p d=请输入精简Roms的盘符并回车【例如C:\Roms,只需要输入C】:
set /a n=0,a=0,b=0,c=0
for /f %%i in ('dir /b /ad "%d%:\Roms\"') do set /a n+=1
for /f "delims=" %%i in ('dir "%d%:\Roms\" /B /A') do (
for /f %%i in ('dir /b /ad "%d%:\Roms\%%i\"') do (
set /a c+=1
))
for /f "delims=" %%i in ('dir "%d%:\Roms\" /B /A:D') do (
for /f %%i in ('dir /b /a-d "%d%:\Roms\%%i\"') do (
set /a c+=1
))
echo 共【%n%】个文件夹和【%c%】个文件
pause
for /f "delims=" %%i in ('dir "%d%:\Roms\" /B /A:D') do (
for /f "delims=" %%a in ('dir /b "%d%:\Roms\%%i\"') do (
        xcopy "Roms\%%i\media\%%~na" "%d%:\Roms\%%i\media\%%~na\" /E /Y >nul 2>nul
if errorlevel 1 (set a+=1) else set /a b+=1
echo 【%%i】%%~na【预览素材已复制】
))
echo 已复制成功 !b! 个,失败!a!个!
echo 按任意键退出
pause>nul
Exit
改成这样正常了.....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 21:13 , Processed in 0.018087 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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