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

[文件操作] [已解决]批处理;帮忙修改统计日志文件个数的代码

[复制链接]
发表于 2018-7-6 20:10:07 | 显示全部楼层 |阅读模式
本帖最后由 a6236130 于 2018-7-8 22:46 编辑

下面两个批处理,我需要将脚本的所在位置往上调一级,请问怎么改?求具体代码
第一个批处理:
  1. @echo off
  2. echo 正在统计中。。。
  3. (for /d %%a in (*) do (
  4. pushd "%%~a"
  5. for /d %%b in (*) do (
  6. pushd "%%~b"
  7. call set Num=0
  8. for /r %%c in (*) do (
  9. call set /a Num+=1
  10. )
  11. popd
  12. call echo %%~b:%%Num%% 个文件
  13. )
  14. popd
  15. ))>"%~dp0文件数日志.txt"
  16. pause
复制代码
第二个批处理:
  1. @echo off
  2. echo 正在统计中。。。
  3. (for /d %%a in (*) do (
  4. pushd "%%~a"
  5. call set Num=0
  6. for /d %%b in (*) do (
  7. pushd "%%~b"
  8. for /r %%c in (*) do (
  9. call set /a Num+=1
  10. )
  11. popd
  12. )
  13. call echo %%~a:%%Num%% 个文件
  14. popd
  15. ))>"%~dp0日志.txt"
  16. pause
复制代码

评分

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

查看全部评分

发表于 2018-7-6 21:08:29 | 显示全部楼层
cd .. 返回上一层目录
发表于 2018-7-6 21:10:17 | 显示全部楼层
现在脚本在哪个目录下?你希望调整到哪个目录下?
发表于 2018-7-7 13:31:45 | 显示全部楼层
本帖最后由 yhcfsr 于 2018-7-7 13:35 编辑

批处理一:
进入一级子目录,再进入二级子目录,获取二级子目录的文件个数.
输出结果:     二级子目录:二级子目录的文件个数
批处理二:
进入一级子目录,再进入二级子目录,获取二级子目录的文件个数.
输出结果:     一级子目录:二级子目录的文件个数

所以你说的目录上移一级到底是要干什么?
第一个脚本功能算是正常人的思维;至于第二个脚本,如果一级子目录下有文件,那么你的结果就是错的.难道你上移一级的意思,是显示一级子目录下所有文件个数吗?
  1. @echo off
  2. echo 正在统计中。。。
  3. (for /d %%a in (*) do (
  4. pushd "%%~a"
  5. call set Num=0
  6. for /r %%c in (*) do (
  7. call set /a Num+=1
  8. )
  9. call echo %%~a:%%Num%% 个文件
  10. popd
  11. ))>"%~dp0日志.txt"
  12. pause
复制代码
 楼主| 发表于 2018-7-7 23:50:46 | 显示全部楼层
回复 4# yhcfsr


    叙述有误,我想要达到的效果是:在加二级目录的下面再加一级目录也就是;
批处理一:
进入一级子目录,再进入二级子目录,,再进入三级子目录,获取三级子目录的文件个数.
输出结果:     三级子目录:三级子目录的文件个数
批处理二:
进入一级子目录,再进入二级子目录,,再进入三级子目录,获取三级子目录的文件个数.
输出结果:     二级子目录:三级子目录的文件总数


想请教下,这两个功能是否可以合成一个批处理来实现? :handshake 感激不尽....
发表于 2018-7-8 13:35:50 | 显示全部楼层
本帖最后由 yhcfsr 于 2018-7-8 21:28 编辑
  1. @echo off
  2. rem 三级目录:三级目录文件个数
  3. set "txt1=%~dp0日志3-3.txt"
  4. rem 二级目录:三级目录文件总数
  5. set "txt2=%~dp0日志2-3.txt"
  6. echo 正在统计中。。。
  7. for /d %%a in (*) do (
  8.         ::一级子目录
  9.         pushd "%%~a"
  10.         for /d %%b in (*) do (
  11.                 ::二级子目录
  12.                 pushd "%%~b"
  13.                 set "Sum=0"
  14.                 for /d %%c in (*) do (
  15.                         ::三级子目录
  16.                         pushd "%%~c"
  17.                         set "Num=0"
  18.                         for /r %%d in (*) do call set /a "Num+=1"
  19.                         >>"%txt1%"  call echo %%~c:%%Num%% 个文件
  20.                         call set /a Sum+=%%Num%%
  21.                         popd
  22.                 )
  23.                 >>"%txt2%" call echo %%~b:%%Sum%% 个文件
  24.                 popd
  25.         )
  26.         popd
  27. )
  28. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2018-7-8 20:54:52 | 显示全部楼层
回复 6# yhcfsr


    不行呢,运行直接闪现一下就没了........
另外能不能把两种统计的结果分两个txt文件
发表于 2018-7-8 21:28:48 | 显示全部楼层
回复 7# a6236130


已改.见5楼.
 楼主| 发表于 2018-7-8 22:44:05 | 显示全部楼层
回复 8# yhcfsr


   :hug: :hug: 非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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