标题: [文本处理] 批处理如何计算2个字段之间总时间 [打印本页]
作者: 娜美 时间: 2022-1-13 11:19 标题: 批处理如何计算2个字段之间总时间
本帖最后由 娜美 于 2022-1-16 08:46 编辑
需要计算出下面字段之间执行时间 即计算出从 "企业" 到 "退出当前" 字段之间的时间过程 需用另一种时间格式方法存储显示
似乎用 "企业 名称:" 作为字符串字段也可以
Thank you
THANKS
作者: 娜美 时间: 2022-1-13 11:31
用awk计算 效率会不会快点?
作者: for_flr 时间: 2022-1-13 17:44
- $log=gc a.log
- $name=$log -match "企业 名称"
- $quit=$log -match "退出当前"
- for($n=0;$n -lt $name.count;$n++){
- $begin=$name[$n].split("",6,[StringSplitOptions]::RemoveEmptyEntries)
- $end=$quit[$n].split("",[StringSplitOptions]::RemoveEmptyEntries)
- $time=(New-TimeSpan -start $begin[0] -end $end[0])
- "{0}{1}" -f '企业 >',$begin[-1]
- "{0}{1}{2}{3}{4}{5}{6}" -f '执行时间 >',$time.hours,'h:',$time.minutes,'m:',$time.seconds,'s'
- }
- $null=[console]::readkey()
复制代码
是这样吗
作者: WHY 时间: 2022-1-13 18:13
本帖最后由 WHY 于 2022-1-13 20:21 编辑
- @echo off
- PowerShell "(gc a.txt) -match '企业\s*名称:|退出当前' | forEach{if(++$i%%2){$a=$_ -split '>\s*企业\s*名称:'; '企业 > ' + $a[1];}else{$b=$_ -replace '>.*$'; $t=get-Date ([DateTime]$b-[DateTime]$a[0]).Ticks; '执行时间 > ' + '{0:HH}h:{1:mm}m:{2:ss}s' -f $t,$t,$t;echo '';}}" > b.txt
- pause
复制代码
作者: 娜美 时间: 2022-1-13 18:43
本帖最后由 娜美 于 2022-1-13 18:52 编辑
回复 4# WHY
Hi, WHY哥
看上似乎很有骨感, 测试了一下 输出格式似乎不对 只有时间 只计算出第一个企业名称时间 其它的没有
作者: WHY 时间: 2022-1-13 19:06
回复 5# 娜美
我咋看不明白呢?
为何不给一个测试文本呢?
作者: 娜美 时间: 2022-1-13 19:13
回复 娜美
我咋看不明白呢?
为何不给一个测试文本呢?
WHY 发表于 2022-1-13 19:06
可以, 内容格式系统就是这样记录的 请帮忙看一下
https://wwe.lanzoul.com/b01p087na
密码:5zbe
作者: WHY 时间: 2022-1-13 20:22
回复 8# 娜美
已修改
作者: 娜美 时间: 2022-1-13 21:50
回复 9# WHY
谢谢WHY哥
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |