Как копировать папки старше определенной даты с помощью Powershell 2.0 - PullRequest
0 голосов
/ 21 июня 2019

У меня есть несколько папок, которые я пытаюсь скопировать. Все папки имеют название «ггггммдд», т. Е. 20190615, начиная с года или более. Я пытаюсь найти способ скопировать только последние 45 дней из этих папок. Самая большая проблема, с которой я столкнулся, заключается в том, что на компьютерах, на которых я работаю, установлен только Powershell 2.0, который, по-видимому, имеет некоторые ограничения, которых нет у 5 или выше.

Мне удалось получить список всех папок в пути с помощью:

$datedsubs = Get-ChildItem -path $path | where-object { $_ -like "20*" }

Оттуда я немного застрял. Я чувствую, что это будет проще с PS 5 или выше. Я попробовал Robocopy, хотя это не решение PS, но оно копирует все, и я просто хочу папки.

Я пробовал что-то вроде следующего, но, похоже, это не работает в PS 2.0.

Get-ChildItem -Path $path | Where-Object { ($_ -like '20*') -and ($_.LastAccessTime -lt $datedlimit)} | Copy-Item -Destination $destination -Recurse

Любая помощь будет оценена здесь.

Спасибо

1 Ответ

0 голосов
/ 21 июня 2019

Помещение того, что сказал Ли, в некоторый код.

Get-ChildItem -Path $Path -Filter "20*" | Where-Object {($_.PSIsContainer) `
    -and ($_.LastAccessTime -gt ((Get-Date).AddDays(-45)))} | `
    Copy-Item -Destination $destination -Recurse

Это должно дать вам то, что вы ищете.

Я поместил это в -gt 45 дней назад, потому что это будетпоказывать только папки, к которым обращались за последние 45 дней.

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