Board logo

标题: [文本处理] 批处理如何将txt文本以指定分隔符后面的数字大小排序? [打印本页]

作者: qlewa    时间: 2013-3-12 12:00     标题: 批处理如何将txt文本以指定分隔符后面的数字大小排序?

本帖最后由 pcl_test 于 2016-7-12 17:11 编辑

要排序的 参赛记录:cjjl.txt 如下:
  1. 20130312-015: 07杜丹丹上场
  2. 20130312-014: 09李璐上场
  3. 20130312-013: 15张浩上场
  4. 20130312-012: 12晓红上场
  5. 20130312-011: 05魏婷上场
  6. 20130312-010: 09李璐上场
  7. 20130312-009: 03马小玲上场
  8. 20130312-008: 07杜丹丹上场
  9. 20130312-007: 06冯小刚上场
  10. 20130312-006: 01赵可可上场
  11. 20130312-005: 11郭海明上场
  12. 20130312-004: 08王晓冉上场
  13. 20130312-003: 06冯小刚上场
  14. 20130312-002: 03马小玲上场
  15. 20130312-001: 01赵可可上场
  16. 20130311-098: 04杜柯河上场
  17. 20130311-097: 01赵可可上场
  18. 20130311-096: 11郭海明上场
  19. 20130311-095: 10乔家华上场
  20. 20130311-094: 01赵可可上场
复制代码
要做的就是 以:20130312-015  的“ 015 ”这个顺序来排序 从小到大!
如:
--------------------------------------------------------------------------------------
20130312-001: 01赵可可上场
20130312-002: 03马小玲上场
20130312-003: 06冯小刚上场




------------------------------------------------------------------------------------------------------------------
并且要去掉昨天的记录,只保留今天的!!     如20130311-098这些都不要了!   一定要注意跨月问题!  如  今天3月1号  不可能用减一天的算法来清除去头一天的记录,不然就变成3月0号了! 当然还有其他方式解决这个问题,



谢谢大家,来帮忙!
作者: wankoilz    时间: 2013-3-12 12:47

  1. @echo off
  2. set day=%date:~0,-3%
  3. set day=%day:/=%
  4. findstr "%day%" cjjl.txt|sort /+10 >cjjl_result_%day%.txt
复制代码

作者: qlewa    时间: 2013-3-13 11:13

回复 2# wankoilz


   你好,不行啊!
作者: wankoilz    时间: 2013-3-13 11:16

错误提示是什么?
作者: qlewa    时间: 2013-3-13 16:24

回复 4# wankoilz


  生成一个空白文件  cjjl_result_2013-03.txt
作者: qlewa    时间: 2013-3-13 16:59

回复 4# wankoilz


   
是时间格式出问题,,你的 时间生成是 2013-03
我的要格式为20130313
作者: BAT-VBS    时间: 2013-3-13 17:38

回复 6# qlewa


开始
运行
cmd
echo %date%
把结果贴出来看看
作者: qlewa    时间: 2013-3-13 18:03

回复 7# BAT-VBS


    2013-03-13
作者: BAT-VBS    时间: 2013-3-13 18:15

回复 8# qlewa
  1. @echo off
  2. set day=%date%
  3. set day=%day:-=%
  4. findstr "%day%" cjjl.txt|sort /+10 >cjjl_result_%day%.txt
复制代码

作者: wankoilz    时间: 2013-3-13 21:25

原来如此!
作者: Marks    时间: 2013-3-14 21:21

  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('wmic os get LocalDateTime /Value') do set d=%%i
  3. findstr /b "%d:~,8%" cjjl.txt|sort>a.txt
复制代码





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