如何显示在特定时间段内修改的所有文件?

时间:2016-02-15 12:57:51

标签: date powershell where get-childitem

我必须dir使用PowerShell在特定时间段内修改的每个文件。

我找到了this article。现在我有以下声明,但收到错误信息。

dir C:\Test\ | ? {
  $_.LastWriteTime -gt '01/01/2016' -and
  $_.LastWriteTime -lt '14/02/2016'
}

Error Message

我是否必须转换日期或其他内容?

2 个答案:

答案 0 :(得分:1)

您收到该错误,因为您的参考日期使用格式dd/MM/yyyy,而PowerShell无法自动转换为DateTime值。使用美国日期格式(MM/dd/yyyy):

dir C:\Test\ | ? {
  $_.LastWriteTime -gt '01/01/2016' -and
  $_.LastWriteTime -lt '02/14/2016'
}

或使用Get-Date从系统区域设置中格式化的字符串创建引用日期(很可能是dd.MM.yyyy,因为您的错误消息是德语):

$maxAge = Get-Date '01.01.2016'
$minAge = Get-Date '14.02.2016'

dir C:\Test\ | ? {
  $_.LastWriteTime -gt $maxAge -and
  $_.LastWriteTime -lt $minAge
}

答案 1 :(得分:0)

得到解决方案:

$von = Read-Host "pls start date of period (dd.mm.yyyy) : "
$bis = Read-Host "pls end date of period(dd.mm.yyyy): "
$vondate = [datetime]::ParseExact($von,'dd.MM.yyyy',$null)
$bisdate = [datetime]::ParseExact($bis,'dd.MM.yyyy',$null)

dir C:\Test\ | ? {
  $_.LastWriteTime -gt $vondate -and
  $_.LastWriteTime -lt $bisdate
}