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

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

[复制链接]
发表于 2015-2-28 23:54:55 | 显示全部楼层 |阅读模式
本帖最后由 终_焉 于 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 )
复制代码
以上代码只运行一次。
为什么会出现这种情况?
发表于 2015-3-1 00:10:59 | 显示全部楼层
把第14行摞到第10行试试
 楼主| 发表于 2015-3-1 00:25:02 | 显示全部楼层
我试了一下,把第14行摞到第10行也还是只执行一次,第14行摞到第04行则一次也不执行
 楼主| 发表于 2015-3-1 00:27:15 | 显示全部楼层

  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也还是只执行一次
发表于 2015-3-1 00:39:01 | 显示全部楼层
再把grt改成gtr试试
发表于 2015-3-1 20:57:15 | 显示全部楼层
本帖最后由 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
复制代码

评分

参与人数 1技术 +1 收起 理由
终_焉 + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-3-1 22:48:13 | 显示全部楼层
回复 5# apang
我改了 grt 和 gtr 都是一次就停
 楼主| 发表于 2015-3-1 22:52:45 | 显示全部楼层
回复 6# pcl_test
谢谢。这个行!我仔细看看代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 15:14 , Processed in 0.019300 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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