Сценарий PowerShell для перемещения файлов и папок, включая подпапки из одного места в другое старше x дней
Я разработал скрипт PowerShell, и он работает отлично. Единственная проблема заключается в том, что файлы в подпапках не перемещаются в пункт назначения.
get-childitem -Path "\\servername\location" |
where-object {$_.LastWriteTime -lt (get-date).AddDays(-31)} |
move-item -destination "C:\Dumps"
Я не могу настроить скрипт дальше.
Ответы
Ответ 1
Используйте -Recurse
в команде Get-ChildItem
чтобы перейти к файлам в подпапках, а затем переместить их по отдельности, соединив коллекцию с Move-Item
Get-ChildItem -Path "C:\Test" -Recurse |
Where-Object {$_.LastWriteTime -lt (Get-date).AddDays(-31)} |
Move-Item -destination "C:\Dumps"
Вот скриншот:
![screenshot]()
Ответ 2
Не тратьте время на то, чтобы изобрести robocopy
в PowerShell.
robocopy \\servername\location C:\Dumps /e /mov /minage:31
Ответ 3
Упрощение приведенного выше
robocopy A:\ B:\/MIR/minage:31
Где A:\является вашим источником B:\является вашим пунктом назначения
Ответ 4
Мне понадобился быстрый один лайнер для перемещения всех данных с одного диска на другой. Это отлично сработало для меня:
Get-ChildItem "E:" -Recurse | Move-Item -Destination "G:"
Ответ 5
Можно ли это изменить, чтобы файлы за 90 дней перемещались в другую папку?