Board logo

标题: [文本处理] [已解决]批处理如何得到把文件夹的排序按字符长短排列的txt文件? [打印本页]

作者: 终_焉    时间: 2015-2-28 23:54     标题: [已解决]批处理如何得到把文件夹的排序按字符长短排列的txt文件?

本帖最后由 终_焉 于 2015-3-1 23:16 编辑

我想用BAT得到把文件夹的排序按字符长短排列的txt文件,为什么以下代码无法达成效果。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in ( 'dir /a-d/b' ) do ( set a=%%~ni&echo !a!>>list1.txt )
  3. pause
复制代码
以上代码运行正常
  1. @echo off
  2. set a=1
  3. set b=2
  4. :continue
  5. sort /+%a% list%a%.txt>list%b%.txt
  6. del list%a%.txt
  7. set /a a+=1
  8. set /a b+=1
  9. :end
  10. pause
  11. if %b% grt 20 ( goto end ) else ( goto continue )
复制代码
以上代码只运行一次。
为什么会出现这种情况?
作者: apang    时间: 2015-3-1 00:10

把第14行摞到第10行试试
作者: 终_焉    时间: 2015-3-1 00:25

我试了一下,把第14行摞到第10行也还是只执行一次,第14行摞到第04行则一次也不执行
作者: 终_焉    时间: 2015-3-1 00:27

  1. @echo off
  2. set a=1
  3. set b=2
  4. :continue
  5. sort /+%a% list%a%.txt>list%b%.txt
  6. del list%a%.txt
  7. set /a a=a+1
  8. set /a b=b+1
  9. exit
  10. if %b% grt 20 ( goto end ) else ( goto continue )
  11. :end
  12. pause
  13. exit
复制代码
补上exit也还是只执行一次
作者: apang    时间: 2015-3-1 00:39

再把grt改成gtr试试
作者: pcl_test    时间: 2015-3-1 20:57

本帖最后由 pcl_test 于 2015-3-2 12:28 编辑

回复 1# 终_焉
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::dir /a-d/b是列出文件名,dir /ad/b列出文件夹名,如果名字中有空格,一个空格算一个字符
  4. for /f "delims=" %%i in ('dir /a-d /b') do >>"list.txt" echo,%%i
  5. echo 导出列表完毕
  6. echo 正在对列表进行排序
  7. for /f "delims=" %%a in ('type "list.txt"') do (
  8. >>$1 echo,%%a¥
  9. )
  10. for /f "delims=" %%b in ('type $1') do (
  11. set "str=%%b"
  12. set len=0
  13. for /l %%c in (0 1 1000) do (
  14. if "!str:~%%c,1!" == "¥"  set "len=%%c" && call :endlen !str! !len!
  15. )
  16. )
  17. for /l %%d in (1 1 200) do (
  18. findstr /c:"¥%%d¥" $2 >>$3
  19. )
  20. for /f "tokens=1* delims=¥" %%e in ('type $3') do >>$ echo,%%e
  21. move $ "list.txt"
  22. echo 排序完毕
  23. del $*
  24. pause & exit
  25. :endlen
  26. >>$2 echo,!str!!len!¥
  27. goto :eof
复制代码

作者: 终_焉    时间: 2015-3-1 22:48

回复 5# apang
我改了 grt 和 gtr 都是一次就停
作者: 终_焉    时间: 2015-3-1 22:52

回复 6# pcl_test
谢谢。这个行!我仔细看看代码。




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