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

LZ可以直接把源文件上传附件……汗,按文本中日期出现的先后顺序排列
  1. @if(0)==(0) echo off&cscript -nologo -e:jscript "%~f0" <"1.txt">"统计.txt"&pause&exit/b&@end
  2. var arr1 = WScript.StdIn.ReadALL().match(/\d+-\d+/g);
  3. var tmp1 = [], hash = {};
  4. for (var i = 0, t; (t = arr1[i]) != null; i++) {
  5.     if (!hash[t]) {
  6.         tmp1.push(t);
  7.         hash[t] = true;
  8.     }
  9. }
  10. var arr2 = tmp2 = [];
  11. arr2 = arr1.sort().slice(0);
  12. for (var i=0;i<arr2.length;){
  13.     var count = 0;
  14.     for (var j=i;j<arr2.length;j++){if(arr2[i] == arr2[j])count++;}
  15.     tmp2.push([arr2[i],count]);
  16.     i+=count;
  17. }
  18. for (var i=0;i<tmp1.length;i++){
  19.     for (var j=0;j<tmp2.length;j++){
  20.         if (tmp1[i]==tmp2[j][0])WSH.Echo(tmp2[j][0]+' '+tmp2[j][1]);
  21.     }
  22. }
复制代码
本版规则
1、求助时,务必在顶楼一次性把问题交代清楚,建议给出完整有针对性的样本,样本过大可发网盘分享链接。勿发无意义的标题
2、使用 code 标记把代码部分括起来(单击回复框的 <> 按钮,复制粘贴代码进去),以便复制。问题解决后,请编辑顶楼帖子在标题前面注明[已解决]

TOP

回复 8# 小纲爸内参


    你下载了第三方工具吗?

TOP

回复 17# CrLf


    下了

TOP

回复 16# pcl_test


    谢谢了 辛苦辛苦 万分感谢
也同时谢谢论坛中其他朋友们辛苦的回答 再次感谢

TOP

16楼 出现排序问题
  1. @if(0)==(0) echo off & cscript.exe -NoLogo -E:JScript %0 <a.txt>b.txt & pause & exit @end
  2. var arr = WScript.StdIn.ReadALL().match(/\d+-\d+/g);
  3. var tmp = {};
  4. for(var i = 0, len = arr.length; i < len; i++)  {
  5.     if (!tmp.hasOwnProperty(arr[i])) {
  6.         tmp[arr[i]] = 1
  7.     }
  8.     else { tmp[arr[i]]++ }
  9. }
  10. len = 0, arr = [];
  11. for(var i in tmp) {arr.push([i,tmp[i]]) }
  12. arr.sort().reverse();
  13. for(var i =0,len = arr.length; i < len; i++)  {
  14.     WScript.echo(arr[i].join('\t'))
  15. }
复制代码

TOP

本帖最后由 CrLf 于 2015-8-14 05:58 编辑

回复 20# terse


我更喜欢这样的流程:
  1. @if(0)==(0) echo off & cscript.exe -NoLogo -E:JScript %0 <a.txt>b.txt & pause & exit @end
  2. var arr = WScript.StdIn.ReadALL().match(/\d+-\d+/g);
  3. if(arr){
  4.     var obj = {};
  5.     arr = arr.sort().reverse();
  6.     for(var i = arr.length; --i ;){
  7.         var a = arr[i];
  8.         obj[a] = a in obj?obj[a]+1:1;
  9.     }
  10.     for(var i in obj){
  11.         WScript.Echo(i + '\t' + obj[i] + '次');
  12.     }
  13. }
复制代码
或者肥猪流的像这样:
  1. @if(0)==(0) echo off & cscript.exe -NoLogo -E:JScript %0 <a.txt>b.txt & pause & exit @end
  2. var obj={};
  3. WScript.StdIn.ReadALL().replace(
  4.     /\d+-\d+/g,
  5.     function(s){
  6.         s in obj?obj[s]++:obj[s]=1;
  7.     }
  8. );
  9. var arr=[];
  10. for(var i in obj) {
  11.     arr.push(i + '\t' + obj[i] + '次');
  12. };
  13. WScript.Echo(arr.sort().join('\r\n'));
复制代码
1

评分人数

TOP

返回列表