Board logo

标题: [文件操作] [已解决]批处理;帮忙修改统计日志文件个数的代码 [打印本页]

作者: a6236130    时间: 2018-7-6 20:10     标题: [已解决]批处理;帮忙修改统计日志文件个数的代码

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

作者: 狄钦dQ    时间: 2018-7-6 21:08

cd .. 返回上一层目录
作者: Batcher    时间: 2018-7-6 21:10

现在脚本在哪个目录下?你希望调整到哪个目录下?
作者: yhcfsr    时间: 2018-7-7 13:31

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

作者: a6236130    时间: 2018-7-7 23:50

回复 4# yhcfsr


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


想请教下,这两个功能是否可以合成一个批处理来实现? :handshake 感激不尽....
作者: yhcfsr    时间: 2018-7-8 13:35

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

作者: a6236130    时间: 2018-7-8 20:54

回复 6# yhcfsr


    不行呢,运行直接闪现一下就没了........
另外能不能把两种统计的结果分两个txt文件
作者: yhcfsr    时间: 2018-7-8 21:28

回复 7# a6236130


已改.见5楼.
作者: a6236130    时间: 2018-7-8 22:44

回复 8# yhcfsr


   :hug: :hug: 非常感谢




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2