Создать 7z архив для файлов, созданных по дате, используя Powershell - PullRequest
2 голосов
/ 25 июня 2011

У меня есть каталог, куда копируются различные ежедневные файлы.Мне нужно написать сценарий Power Shell, который будет создавать 7z архив на основе групп даты создания файла. Название архива включает в себя эти даты группы.

Пример ниже

FileA  06/23/11
FileB  06/23/11
FileC  06/24/11

Скрипт должен создать 2 архива

062311.7z contains FileA, FileB
062411.7z contains FileC

Заранее спасибо

--------- Теперь мне нужно разработать процедуру сжатия, которая может заботиться о ежедневном / еженедельном / ежемесячномдлительности

1 Ответ

5 голосов
/ 25 июня 2011

Первое, что вам нужно сделать, это сгруппировать все файлы по дате, используя group-object:

$groups = dir | group-object -property {$_.LastWriteTime.Date}

затем для каждой группы создайте командную строку, которая выполняет архивирование, и выполните ее:

$groups | foreach{$cmd = "7z.exe a $((Get-Date $_.Name).ToString(`"MMddyy`")).7z $([string]::join(`" `", $_.Group))"; invoke-expression $cmd}

Предупреждение , вышеупомянутое на самом деле не проверено (например, оно не будет работать, если вы пробелы в своем имени файла). Но, надеюсь, это даст вам достаточно, чтобы продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...