获取最接近指定日期

时间:2017-06-27 13:14:03

标签: powershell get-childitem

我需要一个脚本来获取最接近指定日期的文件,并需要一些帮助。

例如:

$GivenDate = [datetime]"06/26/2017 10:30"

Get-ChildItem $backupDirectory -Filter "*.diff"

输出如下:

Mode                LastWriteTime         Length Name                                                                                                                                                       
-a----       25.06.2017     15:30         506368 db1_backup_2017_06_25_153001_5520722.diff                                                                                                               
-a----       26.06.2017      7:30        1597952 db1_backup_2017_06_26_073001_6387310.diff                                                                                                               
-a----       26.06.2017      9:30         675840 db1_backup_2017_06_26_093001_6217913.diff                                                                                                               
-a----       26.06.2017     11:30         657408 db1_backup_2017_06_26_113001_1234104.diff                                                                                                               
-a----       26.06.2017     13:30         675328 db1_backup_2017_06_26_133000_9901392.diff                                                                                                               
-a----       26.06.2017     15:30         673792 db1_backup_2017_06_26_153001_5430241.diff

如何选择最接近$givenDate的文件?

2 个答案:

答案 0 :(得分:4)

计算TimeSpan属性值与LastWriteTime之间的$GivenDate,然后对时间跨度的绝对值(持续时间)进行排序:

$Closest = Get-ChildItem $backupDirectory -Filter *.diff |Sort {(New-TimeSpan $GivenDate $_.LastWriteTime).Duration()} |Select -First 1

答案 1 :(得分:0)

@Mathias R. Jessen解决方案的变化(持续时间和时间跨度不是必需的)

Get-ChildItem $backupDirectory -file -Filter *.diff  | sort {($GivenDate - $_.LastWriteTime)} | Select -First 1