powershell - 过去 7 天阅读文本
问题描述
我正在尝试阅读几个文本文件,其中包含日期和成功的文本。想法是读取最近 7 天的日志,这些日志连续成功。
日志示例:
12/5/2018 3:40:08 AM:Something_secret.txt 成功 6335 12/6/2018 3:40:06 AM:Something_secret.txt 成功 6337 12/7/2018 3:40:10 AM:Something_secret.txt 成功 6338 2018 年 12 月 8 日凌晨 3:40:09:Something_secret.txt 成功 6342 12/9/2018 3:40:09 AM:Something_secret.txt 成功 6342 2018 年 12 月 10 日凌晨 3:40:11:Something_secret.txt 成功 6342 2018 年 12 月 11 日凌晨 3:40:07:Something_secret.txt 成功 6342 12/12/2018 3:40:10 AM:Something_secret.txt 成功 6344 12/13/2018 3:40:10 AM:Something_secret.txt 成功 6347
日志类型 2:
12/6/2018 3:40:06 AM:Something_secret.txt 成功 6337 12/7/2018 3:40:10 AM:Something_secret.txt 成功 6338 2018 年 12 月 8 日凌晨 3:40:09:Something_secret.txt 成功 6342 12/9/2018 3:40:09 AM:Something_secret.txt 成功 6342 2018 年 12 月 10 日凌晨 3:40:11:Something_secret.txt 文件未找到 2018 年 12 月 11 日凌晨 3:40:07:Something_secret.txt 成功 6342 12/12/2018 3:40:10 AM:Something_secret.txt 成功 6344 2018 年 12 月 13 日凌晨 3:40:10:Something_secret.txt 文件未找到
我创造了这个
$files = gci C:\Users\Desktop\xx
foreach ($file in $files) {
$date = (Get-Date).AddDays(-7)-f 'MM/d/yyyy'
$today = ((Get-Date -Format MM/d/yyyy))
gc $file.FullName | where {
$_ -match $date -and
$_ -match $today -match 'Successfully'
} | select @{n='Pathoffile';e={$file.FullName}}
}
解决方案
我可以做的最简单的:
$last7day = [datetime]::Now.AddDays(-7)
#get content from file just provide path ( you can do it in loop)
$files = Get-Content -Path ...
#a line example
$files = '12/12/2018 3:40:08 AM: Something_secret.txt Successfully 6335'
foreach ($line in $files){
[datetime]$date = $line -replace "[^:]:.*",''
if ($date -gt $last7day ) {$line}
}
推荐阅读
- r - 如何使用 ggplot 的 `geom_tile()` 更改 NA 正方形颜色
- java - 使用 XmlIo 在 apache 梁中读取 xml 文件
- java - 如何从HashMap中提取数据
在改造 2 中? - r - 从另一个数据框中的 a.character 列创建一个数据框,其中包含 R 中的元素列表
- javascript - 如何使用Javascript动态绘制网格框以对齐网格
- matlab - 如何连接电流测量?
- javascript - Angular RxJs Observable 流合并数据
- python - 使用带有多个组的 pandas 提取正则表达式
- php - 如何解析这种格式?
- android - Android 进度指示器在 for 循环中一次递增