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 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

Schreibe einen Kommentar