Powershell neuste Datei aus einem Ordner in einen anderen ordner kopieren und Statusbalken anzeigen
Hallo ,
ich würde gern ein Backup, was täglich erstellt wird, in einen Share als Monatssicherung kopieren. Bisher lief das ganz gut. Der Task, der die Backups erstellt, läuft täglich um 23 Uhr. Der Task , der das Backup (also das letzte Backup jeden Monats) in den Share kopiert, läuft am ersten Tag des Folgemonats, gleich morgens um 6 Uhr. Nun ist es so, dass das Script nach Lastwritetime sucht, das Backup aber mittlerweile so groß geworden ist, dass es ert nach 24 Uhr , also schon im nächsten Monat fertig gezipped ist und somit z.B. nicht das Backup vom 31.07 weggkopiert wird, sondern vom 30.07.
Wie muss ich denn das folgende Powershell Script abändern, damit es so funktioniert, wie bisher? Alternativ halt nur, dass das aktuelste File wegkopiert wird. Würde ja auch gehen, da das Script ja gleich morgens läuft und das nächste Backup vom neuen Monat erst um 23 Uhr am Abend:
Was noch schön wäre, wenn man einen Fortschrittsbalken anzeigen lassen könnte, der den Dateinamen der Datei anzeigt, die verschoben wird. (nice to have)
ich würde gern ein Backup, was täglich erstellt wird, in einen Share als Monatssicherung kopieren. Bisher lief das ganz gut. Der Task, der die Backups erstellt, läuft täglich um 23 Uhr. Der Task , der das Backup (also das letzte Backup jeden Monats) in den Share kopiert, läuft am ersten Tag des Folgemonats, gleich morgens um 6 Uhr. Nun ist es so, dass das Script nach Lastwritetime sucht, das Backup aber mittlerweile so groß geworden ist, dass es ert nach 24 Uhr , also schon im nächsten Monat fertig gezipped ist und somit z.B. nicht das Backup vom 31.07 weggkopiert wird, sondern vom 30.07.
Wie muss ich denn das folgende Powershell Script abändern, damit es so funktioniert, wie bisher? Alternativ halt nur, dass das aktuelste File wegkopiert wird. Würde ja auch gehen, da das Script ja gleich morgens läuft und das nächste Backup vom neuen Monat erst um 23 Uhr am Abend:
If (!(Test-Path x:))
{
$net = new-object -ComObject WScript.Network
$RemoteShare = '\\Filer10\RailSysbackup'
$net.MapNetworkDrive("x:", $RemoteShare, $false, "domain\username", "password")
}
$files = gci 'x:\' -Filter *full*.zip | ?{$_.LastWriteTime.toString('yyyyMM') -eq (get-date).AddMonths(-1).toString('yyyyMM')} | sort LastWriteTime -Desc
$files | select -First 1 | copy-item -Destination 'x:\Monatssicherung' -Force
Was noch schön wäre, wenn man einen Fortschrittsbalken anzeigen lassen könnte, der den Dateinamen der Datei anzeigt, die verschoben wird. (nice to have)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 382224
Url: https://administrator.de/forum/powershell-neuste-datei-aus-einem-ordner-in-einen-anderen-ordner-kopieren-und-statusbalken-anzeigen-382224.html
Ausgedruckt am: 19.03.2025 um 13:03 Uhr
3 Kommentare
Neuester Kommentar
das mit den zwei Monaten war ein Denkfehler von mir. Es muss ja gar nichts mehr abgezogen werden.
Sorry ist einfach zu warm
So sollte es passen:
Sorry ist einfach zu warm
So sollte es passen:
$RemoteShare = '\\Filer10\RailSysbackup\Monatssicherung'
$files = gci 'x:\' -Filter *full*.zip | sort LastWriteTime -Desc
$files | select -First 1 | copy-item -Destination $RemoteShare -Force