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

【已解决】怎样对时间文本内容进行排序??

[复制链接]
发表于 2017-2-17 00:47:02 | 显示全部楼层 |阅读模式
本帖最后由 ksla 于 2017-2-17 16:54 编辑

很久无上过来了,这次又遇到问题了,如果发帖格式不对,请管理人员指出!!谢谢

寻求大大帮个小忙!!非常感谢!!!

平时处理要一些txt文件,想通过  时间排序  对  文本内容   进行排列,以防重复再次看到相同内容!!

示例文本
未外理前:
1中国        中国数据        2017年2月19日8时9分47秒        http://aa.com
2美国        数据之家        2017年2月5日6时19分47秒        http://bb.com
3越南        越南之家        2017年2月18日16时5分47秒        http://cc.com
4法国        法国数据        2017年2月18日16时19分3秒        http://dd.com
5金月        金月数据        2017年2月5日16时19分47秒        http://ee.com
6哈哈        哈哈数据        2017年2月20日18时19分47秒        http://ff.com

处理后:
6哈哈        哈哈数据        2017年2月20日18时19分47秒        http://ff.com
1中国        中国数据        2017年2月19日8时9分47秒        http://aa.com
4法国        法国数据        2017年2月18日16时19分3秒        http://dd.com
3越南        越南之家        2017年2月18日16时5分47秒        http://cc.com
2美国        数据之家        2017年2月5日6时19分47秒        http://bb.com
5金月        金月数据        2017年2月5日16时19分47秒        http://ee.com
发表于 2017-2-17 02:46:22 | 显示全部楼层
本帖最后由 CrLf 于 2017-2-17 17:00 编辑
  1. 1>1/* :
  2. @echo off
  3. cscript /nologo /e:jscript "%~0" <测试.txt >排序.txt
  4. pause & exit /b
  5. */
  6. var text = WSH.StdIn.ReadAll()
  7. var arr=[];

  8. text.replace(
  9.         /.+? +(\d+)年(\d+)月(\d+)日(\d+)时(\d+)分(\d+)秒.+/mg,
  10.         function($0,Y,m,d,H,M,S){
  11.                 arr.push({dt:new Date(Y+'/'+m+'/'+d+' '+H+':'+M+':'+S),str:$0})
  12.         }
  13. )

  14. arr = arr.sort(function(a,b){return a.dt-b.dt})

  15. for(var i in arr){
  16.         WSH.Echo(arr[i].str)
  17. }
复制代码
 楼主| 发表于 2017-2-17 09:58:02 | 显示全部楼层
回复 2# CrLf


    谢谢你的救助!!

我提示了以下错误!!
CScript 错误: 无法找到脚本“e:\cscript\1.bat”的脚本引擎“cscript”。

我电脑无有e盘,我将它修改成  cscript /nologo /d:cscript "%~0" <测试.txt >排序.txt   就出现以下错误!!
输入错误: 指定了未知的选项“/d:cscript”。

我尝试过百度,但无果!!
 楼主| 发表于 2017-2-17 11:11:33 | 显示全部楼层
回复 2# CrLf


    {:3_63:} 大哥,,出来帮帮忙!!
发表于 2017-2-17 15:05:11 | 显示全部楼层
/e:cscript”改为“/e:jscript
 楼主| 发表于 2017-2-17 15:25:10 | 显示全部楼层
回复 5# 回家路上


    C:\Users\89054\Desktop\新建文件夹 (8)\1.bat(1, 6) Microsoft JScript 编译错误: 条件编译已关闭
提示这个错误!~!
发表于 2017-2-17 15:38:04 | 显示全部楼层
  1. @set @n=0;/* & echo off
  2. pushd %~dp0
  3. cscript /nologo /e:jscript "%~0" <测试.txt >排序.txt
  4. pause & exit /b
  5. */
  6. var text = WSH.StdIn.ReadAll()
  7. var arr=[];

  8. text.replace(
  9.         /.+? +(\d+)年(\d+)月(\d+)日(\d+)时(\d+)分(\d+)秒.+/mg,
  10.         function($0,Y,m,d,H,M,S){
  11.                 arr.push({dt:new Date(Y+'/'+m+'/'+d+' '+H+':'+M+':'+S),str:$0})
  12.         }
  13. )

  14. arr = arr.sort(function(a,b){return b.dt-a.dt})

  15. for(var i in arr){
  16.         WSH.Echo(arr[i].str)
  17. }
复制代码
 楼主| 发表于 2017-2-17 15:41:05 | 显示全部楼层
回复 7# yu2n


    非常感谢!!
 楼主| 发表于 2017-2-17 15:46:15 | 显示全部楼层
回复 2# CrLf


    谢谢你!!
发表于 2017-2-17 17:00:56 | 显示全部楼层
竟然两处笔误...已修改
 楼主| 发表于 2017-2-17 17:02:35 | 显示全部楼层
回复 10# CrLf


    你好,,我在有偿求助区发帖子了。。能否再写一次,,我会给佣金的
发表于 2017-2-17 17:09:59 | 显示全部楼层
估计不会有人给你写了。。
 楼主| 发表于 2017-2-17 17:27:32 | 显示全部楼层
回复 12# zz100001


    有吖,,好心人还是好多的!!
发表于 2017-2-17 17:32:01 | 显示全部楼层
本帖最后由 523066680 于 2017-2-17 17:45 编辑
  1. use Encode;
  2. open READ, "<:encoding(gbk)", "src.txt";
  3. my %hash;
  4. for my $e ( <READ> )
  5. {
  6.     $e=~s/\r?\n$//;
  7.     if ($e=~/(\d+)\p{han}(\d+)\p{han}(\d+)\p{han}(\d+)\p{han}(\d+)\p{han}(\d+)\p{han}/)
  8.     {
  9.         $t = sprintf("%d%02d%02d%02d%02d%02d", $1, $2, $3, $4, $5, $6 );
  10.         $hash{ $t } = $e;
  11.     }
  12. }
  13. close READ;

  14. grep { print encode('gbk', $hash{$_}),"\n" } ( sort keys %hash );

复制代码
假设时间不重复~  假设文本为GBK
 楼主| 发表于 2017-2-17 18:44:22 | 显示全部楼层
回复 14# 523066680


    谢谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 16:06 , Processed in 0.022608 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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