Déplacer les Fichiers de plus de 31 jours pour un autre lecteur
Function Move {
#Moves all files older than 31 days old from the Source folder to the Target
Get-Childitem -Path "E:\source" | Where-Object { $_.LastWriteTime -lt (get-date).AddDays(-31)} |
ForEach {
Move-Item $_.FullName -destination "F:\target" -force -ErrorAction:SilentlyContinue
}
}
dans le répertoire source sont des fichiers qui sont âgés de plus de 2-3 ans, mais quand je lance le script, rien ne bouge dans le répertoire cible ?! quoi de mal ?
Si vous sortez de la ErrorAction t-il produire des erreurs?
Vos fichiers dans
Pour info, ça ne va pas déplacer les fichiers dans les sous répertoires.
Je vous suggère de les utiliser dans un script, la commande robocopy avec /mov et /minage: les drapeaux.
Vos fichiers dans
E:\source
exactement ou dans ses sous-répertoires? Dans ce dernier cas, l'utilisation Get-Childitem -Recurse
Pour info, ça ne va pas déplacer les fichiers dans les sous répertoires.
Je vous suggère de les utiliser dans un script, la commande robocopy avec /mov et /minage: les drapeaux.
OriginalL'auteur Maurizio Schmidt | 2011-05-06
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas si cela fait beaucoup de différence, mais plutôt que de $. il doit être $_.
J'ai essayé ce script et il fonctionne très bien pour moi:
Avis vous n'avez pas besoin d'une boucle foreach parce que les objets seront "courante" dans le mouvement-l'élément de commande
pourquoi n'est-il pas de travail pour moi...très étrange. j'ai pensé à la foreach pour éviter les problèmes, à cause que nous avons 20k+ fichiers dans certains répertoires....
Merci beaucoup, oui je veux get-childitem. Je suis habitué à l'écriture de dcg. Avoir mis à jour mon post
Schmidt: Si vous avez des fichiers dans des sous-dossiers ce ne sera pas le faire. Vous devez utiliser l'option -Recurse drapeau sur get-childitem, et en outre, vous aurez à travailler sur la façon de se déplacer vers la droite dossier sur les destinations
Matthieu: Maintenant ça fonctionne parfaitement, merci. je pensais que le foreach etc est nécessaire pour éviter la consommation de mémoire et les problèmes causés par le fait que, dans certains répertoires weve plus de 30 000 fichiers.
OriginalL'auteur Matthew Steeples
Aussi être conscient des fichiers cachés, essayez d'ajouter
-Force
àGet-ChildItem
OriginalL'auteur Matias