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

[文本处理] 批处理如何在TXT文件里怎样有条件的合并行?

[复制链接]
发表于 2011-11-21 16:27:57 | 显示全部楼层 |阅读模式
原文
姓名  日期       打卡时间
员工1 2011-10-25 08:54
员工2 2011-10-25 08:17
员工3 2011-10-26 08:10
员工1 2011-10-25 17:35
员工2 2011-10-26 17:14
员工3 2011-10-25 17:34
员工1 2011-11-25 08:54
员工2 2011-11-25 08:17
员工3 2011-11-26 08:10
员工1 2011-11-25 17:35
员工2 2011-11-26 17:14
员工3 2011-11-25 17:34

要求合并后的效果

姓名  日期     上班时间  下班时间
员工1 2011-10-25 08:54          17:35
员工2 2011-10-25 08:17   17:14
员工3 2011-10-26 08:10   17:34
员工1 2011-11-25 08:54   17:35
员工2 2011-11-25 08:17   17:14
员工3 2011-11-26 08:10   17:34
发表于 2011-11-21 23:13:32 | 显示全部楼层
楼主这个好像是从Excel或数据库中导出来的?其实用原生方法更简单,为什么要变成文本?

  1. @set @n=0//&cscript.exe -e:jscript "%~f0"&exit /b

  2. file = "考勤.txt";

  3. fso = new ActiveXObject("Scripting.FileSystemObject");
  4. s = fso.OpenTextFile(file).ReadAll();
  5. s = s.replace(/^\s+|\s*\n\s*/g,'\r\n').replace(/ +/g,',');
  6. temp = '#'+file;
  7. ts = fso.OpenTextFile(temp, 2, true);
  8. ts.write(s); ts.close();

  9. strConnect = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.;'
  10.     + 'Extended Properties="text;HDR=yes;FMT=Delimited;";';
  11. AdoCnn = new ActiveXObject("ADODB.Connection");
  12. AdoCnn.ConnectionString = strConnect;
  13. AdoCnn.Open();
  14. s = "姓名,日期,上班时间,下班时间\r\n";
  15. AdoRs = new ActiveXObject("ADODB.Recordset");
  16. AdoRs.Open("SELECT [a.姓名],[a.日期],[a.打卡时间],[b.打卡时间] from ["+temp+"] as a inner join ["+temp+"] as b  ON (a.[姓名]=b.[姓名] AND a.[日期]=b.[日期] AND a.[打卡时间]<b.[打卡时间])", AdoCnn, 3);
  17. s += AdoRs.GetString(2, AdoRs.RecordCount, ",", "\r\n");
  18. fso.OpenTextFile('result.csv', 2, true).write(s);
  19. AdoRs.Close();
  20. AdoCnn.Close();
  21. fso.DeleteFile(temp);
复制代码

评分

参与人数 2PB +20 技术 +3 收起 理由
zqz0012005 + 20 + 2 谁说没人用JS?这位就是高手
CrLf + 1 幸苦了

查看全部评分

 楼主| 发表于 2011-11-22 08:53:52 | 显示全部楼层
非常感谢2楼的回答!其实原文数据我是从考勤机里导出来的,已经做过一些处理了。我刚开始学编程,对于2楼回复的代码还是不能完全理解,我会继续努力向2楼学习,再次感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 23:53 , Processed in 0.021926 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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