[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理文件如何让文本内容按拼音排序?

例如文本1.txt里有若干Email地址,是未排序的:

女人 zly19781218@hotmail.com
大华都市 metropolis@china.com
城市时报 db@daobao.sina.net
感悟月刊 strong@fornet.com.cn
鸭绿江日报 yaluriverneo@163.com
流行趋势 luxx@cnstock.com
HOW好 shaojing@howmag.com.cn
123导报 db@daobao.sina.net
鸭绿江日报 yaluriverneo@163.com

排序后应该是这样:

123导报 db@daobao.sina.net
HOW好 shaojing@howmag.com.cn
城市时报 db@daobao.sina.net
大华都市 metropolis@china.com
感悟月刊 strong@fornet.com.cn
流行趋势 luxx@cnstock.com
女人 zly19781218@hotmail.com
鸭绿江日报 yaluriverneo@163.com

排序后应该按数字、字母、汉字的顺序排序,并删除信箱后面多余的空格,删除重复的行,比如有两个“鸭绿江日报  yaluriverneo@163.com”。这个批处理怎么写,求高手帮忙,先谢谢了!(就在原文本里排序即可)
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. (for /f "delims=" %%i in ('sort 1.txt') do if not defined %%i echo %%i&set "%%i==")>$
  3. move $ 1.txt
  4. pause
复制代码
1

评分人数

    • CrLf: 乐于助人,幸苦了PB + 5 技术 + 1

TOP

  1. @echo off
  2. for /f "delims=" %%i in (1.txt) do set *%%i==
  3. (for /f "tokens=1,2 delims=*= " %%i in ('set *') do echo %%i %%j)>1.txt
  4. pause
复制代码

TOP

回复 2# lvsehuaxue

2楼这个是成功的。不过,有一点小问题:原来所有要整理的文本,第一行都是空行,这样一整理空行就消失了,能不能在整理完后再把那个空行再自动加上。谢谢了!

TOP

回复 4# gu3669
代码稍加修改即可。
  1. @echo off
  2. echo.>$
  3. for /f "delims=" %%i in ('sort 1.txt') do if not defined %%i echo %%i>>$&set "%%i=="
  4. move $ 1.txt
复制代码

TOP

回复 5# lvsehuaxue


    非常感谢!

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (echo.
  3. for /f "delims=" %%i in ('sort 1.txt') do (
  4.     set aa=%%i&call :loop
  5.     for %%j in ("!aa!") do if not defined %%j echo !aa!&set "%%j=="
  6. ))>$
  7. move $ 1.txt&goto :eof
  8. :loop
  9. if "!aa:~-1!"==" " set aa=!aa:~,-1!&goto loop
复制代码
排序并删除邮箱名后面的多余空格。
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

回复 7# apang


    批处理还真是博大精深啊   

  dos在排序的时候是怎样辨别汉字中的拼音的


  连接哈计算机怎样暗里工作的

TOP

回复 8# jdsdsa


    排序次序取决于系统设置。
http://bbs.bathome.net/redirect. ... 3&fromuid=30406

TOP

返回列表