Robocopy - nur geänderte Daten kopieren, vorhandene nicht überschreiben, sondern Durchnummerieren
Hallo zusammen,
Ich hab ein Programm gesucht und gefunden das genau zum Titel passt, doch leider funktionierte dieses Skript nicht.
Ich kenne mich mit Programmieren absolut nicht aus und hab experimentell dann letztlich das skript, von SpottyDog Robocopy - mehrere Versionen geänderter Dateien archivieren zum laufen gebracht.
Jetzt meine Frage an euch.
Ist es möglich das so umzuschreiben, das anstatt des Datum-Zeit Stempel eine fortlaufende Nr. kommt.
z b
Text.txt
Text(1).txt
Text(2).txt
u.s.w
Wie gesagt ich hab keinerlei Ahnung von Scripten und wäre sehr Dankbar wenn sich einer die Mühe machen würde, es so zu realisieren.
Ich hab ein Programm gesucht und gefunden das genau zum Titel passt, doch leider funktionierte dieses Skript nicht.
Ich kenne mich mit Programmieren absolut nicht aus und hab experimentell dann letztlich das skript, von SpottyDog Robocopy - mehrere Versionen geänderter Dateien archivieren zum laufen gebracht.
Jetzt meine Frage an euch.
Ist es möglich das so umzuschreiben, das anstatt des Datum-Zeit Stempel eine fortlaufende Nr. kommt.
z b
Text.txt
Text(1).txt
Text(2).txt
u.s.w
Wie gesagt ich hab keinerlei Ahnung von Scripten und wäre sehr Dankbar wenn sich einer die Mühe machen würde, es so zu realisieren.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6805173670
Url: https://administrator.de/contentid/6805173670
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
15 Kommentare
Neuester Kommentar
Mache ich und gebe nochmal Feedback. Ich meine das ist möglich.
Hallo Zwergie,
leider war ich so wie du mit Robocopy bisher erfolglos.
Ich bin aber über xcopy gestolpert und scheinbar gibt es dort diese Funktion mit einem * am Ende der Zeile:
Anbei ein Link, eventuell hilft dir das.
https://www.litigationsupporttipofthenight.com/single-post/2018/05/08/wi ...
Nachfolgend noch die Befehlstabelle von Microsoft:
https://learn.microsoft.com/de-de/windows-server/administration/windows- ...
leider war ich so wie du mit Robocopy bisher erfolglos.
Ich bin aber über xcopy gestolpert und scheinbar gibt es dort diese Funktion mit einem * am Ende der Zeile:
Anbei ein Link, eventuell hilft dir das.
https://www.litigationsupporttipofthenight.com/single-post/2018/05/08/wi ...
Nachfolgend noch die Befehlstabelle von Microsoft:
https://learn.microsoft.com/de-de/windows-server/administration/windows- ...
$sourceroot = 'D:\quelle'
$targetroot = 'E:\ziel'
$files_source = Get-ChildItem $sourceroot -Recurse -File | select *,@{n='RelativePath';e={$_.Fullname -replace [regex]::Escape($sourceroot)}}
$files_target = Get-ChildItem $targetroot -Recurse -File | select *,@{n='RelativePath';e={$_.Fullname -replace [regex]::Escape($targetroot)}}
compare @($files_source) @($files_target) -Property RelativePath,LastWriteTime,Length -passthru | ?{$_.SideIndicator -eq '<='} | %{
$dest = join-path $targetroot $_.RelativePath
$targetfolder = "$targetroot\$([io.path]::GetDirectoryName($_.RelativePath))"
if (!(Test-Path $targetfolder)){new-item -type dir $targetfolder -Force | out-null}
$cnt = 0
while((Test-Path $dest)){
$dest = join-path $targetfolder "$($_.Basename)_$("{0:D2}" -f (++$cnt))$($_.Extension)"
}
if($cnt -gt 1){
if ($_.LastWriteTime -eq (Get-Item (join-path $targetfolder "$($_.Basename)_$("{0:D2}" -f ($cnt-1))$($_.Extension)")).LastWriteTime){
return
}
}
$_ | copy-item -Destination $dest -Verbose
}
Zitat von @Zwergie:
Hallo Ultramatic,
Hab's gerade getestet, Ordner werden jetzt mitkopiert, das ist schoma gut.
Wenn man es jetzt so realisieren könnte das nach dem 2. durchlauf neue und geänderte dateien kopiert und durchnummeriert werden, wäre es perfekt.
Ist so schon integriert!Hallo Ultramatic,
Hab's gerade getestet, Ordner werden jetzt mitkopiert, das ist schoma gut.
Wenn man es jetzt so realisieren könnte das nach dem 2. durchlauf neue und geänderte dateien kopiert und durchnummeriert werden, wäre es perfekt.
Momentan werden alle Dateien bei jedem durchlauf nochmal kopiert und durchnummeriert. Somit hätte ich unmenge Daten die ich nicht bräuchte und wüsste nicht welche Dateien sich geändert haben.
Dann ist dein Ziel wohl FAT32 statt NTFS denn das hat nur eine 2 Sekunden Auflösung der LastWriteTime Werte dann kommt es zu dem Verhalten weil dann die meisten Zeiten nicht mehr zwischen Quelle und Ziel übereinstimmen funktionierte hier im Test nämlich einwandfrei. Also besser du formatierst die Backup-Platte mit NTFS, schon wegen der max. Dateigröße sicherer.
Macht das Skript schon in Zeile 18 mit dem -verbose Parameter.