Скрипт PowerShell для перемещения файлов и папок, включая вложенные папки из одного места в другое старше X дней

Я разработал сценарий PowerShell, и он работает абсолютно нормально. Единственная проблема заключается в том, что файлы во вложенных папках не перемещаются в пункт назначения.

get-childitem -Path "servernamelocation" |
    where-object {$_.LastWriteTime -lt (get-date).AddDays(-31)} |
    move-item -destination "C:Dumps"

Я не могу настроить скрипт.

4 ответов


использовать на Get-ChildItem команда, чтобы добраться до файлов в вложенных папках, а затем переместить каждый по отдельности по трубопроводу коллекции в Move-Item

Get-ChildItem -Path "C:\Test" -Recurse |
  Where-Object {$_.LastWriteTime -lt (Get-date).AddDays(-31)} |
  Move-Item -destination "C:\Dumps"

вот скриншот:

screenshot


Не тратьте свое время, пытаясь заново изобрести robocopy в PowerShell.

robocopy \servername\location C:\Dumps /e /mov /minage:31

упрощение выше
robocopy A:\ B:\ /MIR /minage:31
Где A:\ ваш источник B:\ Ваш пункт назначения


Мне нужен был быстрый лайнер, чтобы переместить все данные с одного диска на другой. Это отлично сработало для меня:

Get-ChildItem "E:" - Рекурсия / Перемещение-Пункт Назначения " G:"