需要一个powershell脚本来从文本文件中读取和获取文件名

时间:2017-01-06 07:49:53

标签: windows powershell

我有一个以下格式的文本文件 - 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天,并将其移除到磁盘中。

我希望这个问题可以解释我的问题。

1 个答案:

答案 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
}
相关问题