web-dev-qa-db-fra.com

Script PowerShell pour déplacer des fichiers et des dossiers, y compris des sous-dossiers, d'un emplacement à un autre de plus de x jours

J'ai développé un script PowerShell, et cela fonctionne très bien. Le seul défi est que les fichiers des sous-dossiers ne sont pas déplacés vers la destination.

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

Je n'arrive pas à personnaliser davantage le script.

15
user1926332

Utilisez le -Recurse option sur le Get-ChildItem commande pour accéder aux fichiers des sous-dossiers, puis déplacez-les individuellement en redirigeant la collection vers Move-Item

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

Voici une capture d'écran:

screenshot

12
Musaab Al-Okaidi

Ne perdez pas votre temps à essayer de réinventer robocopy dans PowerShell.

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

Simplification de ce qui précède
robocopy A:\ B:\ /MIR /minage:31
Où A:\est votre source B:\est votre destination

7
Stephen Tunney

J'avais besoin d'une doublure rapide pour déplacer toutes les données d'un lecteur vers un autre. Cela a parfaitement fonctionné pour moi:

Get-ChildItem "E:" -Recurse | Move-Item -Destination "G:"

0
Vinny