2016-02-15 2 views
0

У меня есть dir каждый файл, который был изменен за определенный период времени с помощью PowerShell.Как показать все файлы, измененные за определенный период?

Я нашел this article. Прямо сейчас у меня есть следующий оператор, но я получаю сообщение об ошибке.

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

Error Message

Должен ли я конвертировать дату или что-то?

+0

THX за помощь! ParseExact было решением :) –

ответ

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 
} 
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 
} 
+0

О, боже, я даже не потрудился проверить вторую дату. – Matt

 Смежные вопросы

  • Нет связанных вопросов^_^