2016-02-12 2 views
0

Не удается заставить эту команду работать. Я пытаюсь увидеть все файлы с определенной строкой в ​​имени, созданном ровно с 17:00 вчера, независимо от того, в какое время я запускаю скрипт сегодня. Ниже я до сих пор. Любая помощь будет принята с благодарностью.Как просмотреть файлы, созданные с 17:00 вчера?

$today = (get-date).dayofyear 
$string = "blah" 
$filepath = "C:\files" 

Get-ChildItem -Recurse -Force $filePath | where { $_.CreationTime.dayofyear -eq (($today)-1) } -and { $_.CreationTime.hour -ge 17 | Where-Object { ($_.PSIsContainer -eq $false) -and ($_.Name -like "*$string*"} 

ответ

0

Получить только Date часть стоимости DateTime (который дает вам сегодня в 0:00:00) и вычесть 7 часов от туда вчера в 5 часов вечера.

$cutoff = (Get-Date).Date.AddHours(-7) 

Get-ChildItem -Recurse -Force $filePath | Where-Object { 
    -not $_.PSIsContainer -and 
    $_.CreationTime -ge $cutoff -and 
    $_.Name -like "*$string*" 
} 

Если у вас есть PowerShell v3 или более поздней версии, вы можете заменить условие -not $_.PSIsContainer, вызвав Get-ChildItem с параметром -File.

+0

Это отлично работает. Очень ценится. –

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