Verschieben Sie die Dateien, die älter als 31 Tage auf ein anderes Laufwerk
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
}
}
in das source-Verzeichnis sind Dateien, die älter sind als 2-3 Jahre, aber wenn ich das Skript ausführen, nichts bewegt sich, um das Ziel-Verzeichnis ?! was mache ich falsch ?
Wenn Sie nehmen Sie die ErrorAction daraus Fehler?
Sind Ihre Dateien in
FYI, das wird nicht verschieben von Dateien in Unterverzeichnissen.
Ich schlage vor, die Verwendung in einem Skript den robocopy-Befehl mit /mov und /minage: flags.
Sind Ihre Dateien in
E:\source
genau oder in Unterverzeichnissen? Im letzteren Fall verwenden Sie Get-Childitem -Recurse
FYI, das wird nicht verschieben von Dateien in Unterverzeichnissen.
Ich schlage vor, die Verwendung in einem Skript den robocopy-Befehl mit /mov und /minage: flags.
InformationsquelleAutor Maurizio Schmidt | 2011-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, ob das macht viel Unterschied, aber anstatt $. es muss $_.
Habe ich versucht, dieses script und es funktioniert gut für mich:
Feststellen, Sie brauchen nicht eine foreach-Schleife, da die Objekte werden "geleitet" in der "move-item" - Befehl
warum funktioniert es bei mir nicht funktioniert...sehr seltsam. ich dachte über die foreach-um Probleme zu vermeiden, denn wir haben 20k-Dateien in einige Verzeichnisse....
Vielen Dank, ja ich meine wirklich "get-childitem". Ich bin es gewohnt zu schreiben gci. Habe meinen Beitrag aktualisiert
Schmidt: Wenn Sie Dateien in Unterordner, diese werden es nicht tun. Sie haben, um den-Recurse-flag auf "get-childitem", und zusätzlich werden Sie haben, um herauszufinden, wie sich zu bewegen, um den rechten Ordner auf die Ziele
Matthew: Nun, es funktioniert perfekt, thx. ich dachte, foreach etc., ist notwendig, um den Speicherverbrauch Probleme durch die Tatsache verursacht, dass in einigen Verzeichnissen haben wir mehr als 30.000 Dateien.
InformationsquelleAutor Matthew Steeples
Auch bewusst sein, dass versteckte Dateien angezeigt werden, versuchen Sie
-Force
zuGet-ChildItem
InformationsquelleAutor Matias