[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
暂时无聊,发一个 保存为 xxx.pa1
  1. $txt = '.\aa.txt';
  2. $contents= Import-Csv -Path $txt -Encoding Default|%{[pscustomobject]@{name=$_.姓名;time=$_.工作时间;work=$_.工作组}}
  3. $contents|group name,work|Where{$_.Group.Count -ge 2}|foreach{
  4. $t=$_.Group.time.Foreach{$_ -as [datetime]}
  5. $max = ($t|measure -Maximum).Maximum;
  6. $min = ($t|measure -Minimum).Minimum;
  7. $tL = $max-$min;
  8. $user = $_.Name.Split(',');
  9. [pscustomobject]@{姓名=$user[0];工作组=$user[1]; 工作时长="{0}d{1}h{2}m{3}s" -f $tL.Days,$tL.Hours,$tL.Minutes,$tL.Seconds;}
  10. }#|sc '.\result.log' -force;
  11. pause;
复制代码
QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

回复 2# hlzj88

应该是打卡机数据导出,计算是否不足工作时长的。这个可以把时分别剥离,然后时、分、秒转换为统一值“秒”。先做加法得出上班/下班时间点的数值,再做减法得出差值,最后用差值对比上班时长。

这个时长就可以和标准上班时长8小时(28800 秒)来做比较,如果不足就算做早退。

不知道帖主是不是要实现这个功能

TOP

其实,你的题目是有些看不懂,你要的结果,张三是把工作组a b都合并在一起。没有达到区分工作组的目的。在时间顺序上,又是颠倒的。
如果只是要统计一个人连续工作的时间,可以先排除不可能的时间,或给定一个通常的开始时间,余下的进行连续计时。不区分工作组。我理解可能是不同的打卡机。
目的,学习批处理

TOP

返回列表