[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

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

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

评分人数

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

cd .. 返回上一层目录

TOP

现在脚本在哪个目录下?你希望调整到哪个目录下?
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

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

TOP

回复 4# yhcfsr


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


想请教下,这两个功能是否可以合成一个批处理来实现?:handshake :handshake 感激不尽....

TOP

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

评分人数

QQ 33892006

TOP

回复 6# yhcfsr


    不行呢,运行直接闪现一下就没了........
另外能不能把两种统计的结果分两个txt文件:)

TOP

回复 7# a6236130


已改.见5楼.
QQ 33892006

TOP

:hug: 回复 8# yhcfsr


   :hug: :hug: 非常感谢

TOP

返回列表