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

How to show all files modified in a specific period?

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

我找到了 this article。现在我得到了以下语句,但我收到一条错误消息。

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

我需要转换日期什么的吗?

得到解决方案:

$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
}

您收到该错误,因为您的参考日期使用格式 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
}