Используя команду Get-ChildItem
, как предложено Кираном выше, вы можете генерировать объекты FileInfo и DirectoryInfo. Каждый из них имеет временную метку для файла и / или каталога, хранящуюся в различных свойствах, таких как LastWriteTime
, LastAccessTime
, CreationTime
. Каждое из этих свойств содержит данные типа [DateTime]
. Если у вас есть элемент [DateTime]
для каждого из ваших файлов / папок, вы можете сделать что-то вроде этого:
#Set variable $MY to be 7 years ago
$Now = (Get-Date)
$MY = $Now.AddYears(-7)
#Write custom Get-ChildItem statements to put list of files/folders in $AllItems variable
#Now, loop through with each month/year
Do
#Filter $AllItems for the proper Month-Year
$ThisMonthsItems = $AllItems.Where({$_.LastWriteTime.Month -eq $MY.Month -and $_.LastWriteTime.Year -eq $MY.Year})
#Use $ThisMonthsItems to add items to your .zip file
#This step left for you to fill with your compression routines
$MY = $MY.AddMonths(1)
Loop Until ($MY.Month -eq $Now.Month -and $MY.Year -eq $Now.Year)
Вам, вероятно, потребуется настроить l oop, чтобы получить правильное временное окно, но базовая c идея должна быть там для вас.
Удачи