我目前有一个输出日志文件,有点混乱并且增长很快。这是一个授予邮箱权限的大型脚本的调试输出。我基本上只想删除文件中的每一行,直到找到 7 天前日期的第一次迭代。
到目前为止,我可以返回包含该日期的所有行
$content = Get-Content $file
$lastweek = "{0:M/d/yyyy}" -f (get-date).AddDays(-7)
$content | Where-Object { $_.Contains("$lastweek") }
但我无法找出一个函数来擦除所有内容,直到第一次找到它。
我尝试过 -replace:
$content -replace ".*$lastweek", " " | Set-Content $file -Force
但这似乎只是从包含指定字符串的每一行的开头进行替换。
如果您运行的是 V4,则可以使用该数组.Where()
方法,用 'SkipUntil
' 选项:
$content.Where({ $_ -like "*$lastweek*" },'SkipUntil')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)