2016-11-30 4 views
1

Я был возникли проблемы, пытаясь захватить файлы определенного возраста на основе текущей даты, код, я нахожу, что говорит использоватьGet-ChildItem отфильтрованной LastWriteTime

|where {$_.lastwritetime -gt (get-date).adddays(-7)} 

, но я не получаю любые результаты, я испытал

(get-date).adddays(-7) 

и возвратил правильную дату в другом формате, чем дата возвращается из

get-childitem |select lastwritetime 

но я не могу отформатировать дату получения внутри строки в соответствии с форматом lastwritetime, есть ли что-то, что отсутствует? как я могу заставить это работать?

В частности им просто тестирование, чтобы увидеть, как фильтровать LastWriteTime, чтобы сделать скрипт резервного копирования для практики, сейчас им пытаются перечислить все файлы старше X дней с

get-childitem |where {$_.lastwritetime -gt (get-date).adddays(-7)} 

без ошибок, но никаких результатов, и когда я просто перечислил все с помощью lastwritetime, есть, очевидно, файлы в параметрах, поэтому формат - это все, что я могу представить себе как сбой

+0

Я не вижу причин, почему это не должно работать. Вы уверены, что есть файлы старше, чем через неделю? Также почему вы не указываете каталог в своем Get-ChildItem? –

ответ

0

Я принимаю его, вы пытаетесь собрать файлы Старые чем 7 дней правильно? если это так, вам нужно поменять -gt на -lt, так как время в Windows подсчитывается вверх, поэтому значения, превышающие (get-date).adddays(-7), будут указывать файлы, которые были записаны за последние 7 дней, а не файлы, которые не были записаны. Также имейте в виду, что Метаданные Windows ужасно ненадежны (и меняются пользователем), поэтому я бы не использовал этот метод для чего-то другого, кроме базовой очистки, где 100% -ная точность не требуется.

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

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