我有一个以下格式的文本文件 - fileList.txt
2017-01-05 13:27:35 0 logs/
2017-01-06 03:08:10 798 logs/Logs_2016-01-06.zip
2017-01-05 14:23:45 0 logs/logs/
2017-01-06 03:08:10 798 logs/Logs_2016-06-06.zip
2017-01-06 03:08:10 798 logs/Logs_2016-04-06.zip
2017-01-06 03:08:10 798 logs/Logs_2016-04-06.zip
2017-01-06 03:08:10 798 logs/Logs_2016-03-06.zip
我需要一个powershell脚本来获取此文件中的所有文件名,例如:Logs_2016-03-06.zip,其日期子字符串从当前日期开始超过30天,并将其移除到磁盘中。
我希望这个问题可以解释我的问题。
答案 0 :(得分:0)
只需使用一些字符串函数将文本转换为psobject,使用New-Timespan
来获取日期。像这样:
Get-Content your_file.txt | % {
New-Object psobject -Property @{
days = (New-Timespan -start (Get-Date $_.Substring(0, 19)) -end (Get-Date)).Days
file = $_ -replace '^.*\s\s\d+\s(.+)$', '$1'
}
} | ? {$_.file -match '\.' -and $_.days -gt 30} | % {
Remove-Item $_.file
}