我有一个文本文件,其数据如下:
07:30 - 07:45PMTS09526052 | Sev9 | Location| | Due: 12/23/2016
NON PC HARDWARE - TROUBLESHOOT SW
Complete this Job
Run Code Online (Sandbox Code Playgroud)
这些行将在整个文档中多次显示,并带有变体,例如第一行上字母"PMT"之后的字母数字字符.
我需要找到一种方法,所以每当它找到"PMT"时,它会拉出那个和接下来的9个符号,将其放入CSV中,然后将"完成此作业"行放在CSV的下一个位置.
我知道我需要将模式设置为PMT[ST][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]($WLDir文件名在哪里).
Select-String $WLDir -pattern “PMT[ST][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]”
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我的下一步行动是隔离该部分和第2行,并将它们设置为CSV格式的单元格数据.有人可以帮忙吗?我道歉,因为看起来我没有在这里完成我的作业,但我一直在尝试使用之前的问题和一些嘿!脚本专家!作为参考,但我只是卡住了.
不是100%肯定是什么结果应该看起来像,但我认为你想有一个CSV带Time,Topic和Status列:
Select-String $WLDir -pattern '(PMT[ST]\d{8})' -Context 0,2 | ForEach-Object {
[PSCustomObject]@{
Time = $_.Matches.Groups[1].Value
Topic = $_.Context.PostContext[0]
Status = $_.Context.PostContext[1]
}
} | ConvertTo-Csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)
这将输出:
"Time","Topic","Status"
"PMTS09526052","NON PC HARDWARE - TROUBLESHOOT SW","Complete this Job"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |