[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion
  2. set mn=1
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.      set "str=%%~nxi        "
  5.      set/a n+=1,m=n%%5
  6.      call:lp
  7.      )
  8.      >list.txt echo 本目录下有文本文件!n!个
  9.      for /l %%a in (1 1 %mn%) do if "!%%a!" neq "" >>list.txt echo.!%%a!
  10.           echo.>>list.txt
  11.           set/a nm=mn+1,mn+=1,t+=n,n=0
  12.      for /f "delims=" %%a in ('dir /b /ad') do (
  13.          for /f "delims=" %%i in ('dir /b /a-d "%%a\*.txt"') do (
  14.             set var=%%a
  15.             set "str=%%~nxi        "
  16.             set/a n+=1,m=n%%5
  17.             call:lp
  18.             )
  19.             if defined var (
  20.      >>list.txt echo.!var!子文件夹中有文本文件!n!个:&set var=
  21.      for /l %%b in (!nm! 1 !mn!) do if "!%%b!" neq "" >>list.txt echo.!%%b!
  22.      )
  23.      echo.>>list.txt
  24.      set/a nm=mn+1,mn+=1,t+=n,n=0
  25.      )
  26.      >>list.txt echo %~dp0中总共有文本文件%t%个
  27.       del %0
  28. pause&exit
  29. :lp
  30. if %m% equ 0 (set/a mn+=1&set "%mn%=!%mn%!%str%") else set "%mn%=!%mn%!%str%"
复制代码

精简点
  1. @echo off&setlocal enabledelayedexpansion
  2. set/a mn=1,nm=1&set "var1=%~dp0"
  3. for /f "delims=" %%i in ('dir /s/b *.txt') do (
  4.      set "var=%%~dpi"&set "str=%%~nxi    "
  5.      if "!var!" neq "!var1!" call:lp0
  6.      set/a n+=1,m=n%%5
  7.      call:lp
  8.      )
  9.      call:lp0
  10. >>list.txt echo %~dp0中总共有文本文件%t%个
  11. del %0
  12. pause&exit
  13. :lp
  14. set var1=!var!
  15. if %m% equ 0 (set/a mn+=1&set "%mn%=!%mn%!%str%") else set "%mn%=!%mn%!%str%"
  16. goto:eof
  17. :lp0  
  18. if !nm! equ 1 (>list.txt echo 本目录下有文本文件!n!个) else (
  19.      set var1=!var1:%~dp0=!
  20.      >>list.txt echo !var1:~,-1!子文件夹中有文本文件!n!个)
  21.      for /l %%i in (!nm! 1 !mn!) do if "!%%i!" neq "" >>list.txt echo.!%%i!
  22.      echo.>>list.txt
  23.      set/a nm=mn+1,mn+=1,t+=n,n=0
复制代码

[ 本帖最后由 terse 于 2008-9-5 03:05 编辑 ]
1

评分人数

TOP

原帖由 batman 于 2008-9-5 14:30 发表
&&在我题目的最后我补上了这句话:文本文件名中最多有6个汉字,最少有2个汉字(全是
汉字),可能大家只注意到了“6”,而没有注意“汉字”,对汉字字符进行对齐在字符后补
英文空格" "是不行的,而要补汉字空格 ...

怎么回事呢?我应该补的就是“    ”  贴上的变化吧
%mn%=!%mn%!%str%
而且我没用截位的  因为无须的

TOP

返回列表