我需要一个脚本来获取最接近指定日期的文件,并需要一些帮助。
例如:
$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
的文件?
答案 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