简单的解决方案是这样的:
Where-Object{ $_.LastWriteTime -lt $startDate -or $_.LastWriteTime -gt $endDate }
在哪里和$startDate
是。01/10/2012 (1st Oct)
$endDate
25/10/2012 (25th Oct)
这种方法的问题是它没有考虑[datetime]
. 因此,在您的示例中,如果您有25-Oct-2012
上限,它将返回25-Oct-2012 9:00
您可能不想要的在 处创建的文件。
下面的代码根据[datetime]
输入计算截断时间部分的 's [datetime]
,并构建 的月至今日期范围($dayStart, $dayEnd)
:
$entry_date = "20-Oct-2012 9:00" #to feed current date, use this: Get-Date
$dayEnd = Get-Date $entry_date -Minute 0 -Hour 0 -Second -0;
$dayStart = Get-Date $endDate -Day 1;
$dayStart, $dayEnd
对于此示例代码,以下是输出:
Monday, October 01, 2012 12:00:00 AM
Saturday, October 20, 2012 12:00:00 AM
请注意,这种方法很灵活,因为您可以设置$entry_date
为Date
or String
,并且它可能有也可能没有时间部分 - 它适用于所有这些情况。然后,您可以在以下代码中使用此代码Where-Object
:
Where-Object{ $_.LastWriteTime -lt $dayStart -or $_.LastWriteTime -ge $dayEnd.AddDays(1) }
请注意-ge $dayEnd.AddDays(1)
与.25-Oct-2012
25-Oct-2012 9:00