Я написал небольшой скрипт для поиска по всем папкам на одном из моих серверов, чтобы найти все файлы старше 3 лет.Powershell Compress-Archive по старым файлам
Однако я хочу написать все файлы, соответствующие критериям, в архив с тем же именем, и я несколько зациклен на том, как это можно достичь.
Вот мой код до сих пор ...
$limit = (Get-Date).AddYears(-3)
$Path = "L:\"
$Path2 = "archive.zip"
$PathB = Get-ChildItem -Path $Path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $Limit }
Compress-Archive -Path $Pathb -DestinationPath {$Path + $Path2}
То, что я пытаюсь добиться в основном;
В каталоге
> l:\
Есть 3 файлов старше 3-х лет ...
Red.PDF Hello.Doc me.jpg
Я хочу возьмите эти три файла и добавьте их в архив;
L:\Archive-ddmmyyyy.zip
В идеальном мире имен все эти файлов, которые были заархивированы будет написано/прилагаемых к CSV-файл на L: \ под названием archivedlog.csv содержит имя файла и дату его и дата его архивирования.
Заключительный цикл затем удалит исходные три файла и оставит архив неповрежденным. В этой последней части я думаю, что могу достичь других элементов не так много.
Что я до сих пор нахожу в старых файлах, но при сжатии указывается, например, что «Путь« Red.PDF »либо не существует, либо не является допустимым путём системного файла.
Это может быть, однако из-за плохое форматирование файлов на сервере числе сохраненных документов, на самом деле в формате ...
«Mrs P Simpson письмо 12.07.2012.docx либо не существует или не является допустимым пути к файловой системе. '
Угадайте, что из-за повторения '.' в имени файла это может вызвать проблемы, но я для одного не знаю ...
Может ли кто-нибудь указать мне в правильном направлении с этим?
Я должен был сказать, что цель состоит в том, чтобы это переписывать каждый каталог в L: \, создавая архив для всех файлов в каждом подкаталоге, входящем в эту категорию.
С наилучшими пожеланиями
R