hohiro
Goto Top

Robocopy - Verzeichnis Timestamps wurden nicht mitkopiert

Hallo Zusammen,

ich habe eine große Menge Daten mithilfe des folgenden Robocopy Befehls verschoben.

robocopy "C:\Ordner\A" "C:\Ordner\B" /MIR /w:5 /r:2 /COPYALL /DCOPY:DAT /MOVE /UNILOG+:"C:\Users\User\Desktop\robocopy.log"  

Leider wurden die Timestamps der Verzeichnisse auf den Kopierzeitpunkt gesetzt. Ich dachte, dies würde /DCOPY:DAT verhindern und die Timestamps mitkopieren. Da ich /MOVE verwendet habe, kann ich die Timestamps auch nicht mehr wiederherstellen.

Das würde ich bei dem nächsten, noch größeren Kopiervorhaben gerne vermeiden.
Was habe ich falsch gemacht?

Content-ID: 7510375756

Url: https://administrator.de/forum/robocopy-verzeichnis-timestamps-wurden-nicht-mitkopiert-7510375756.html

Ausgedruckt am: 18.04.2025 um 05:04 Uhr

user3086
user3086 13.06.2023 aktualisiert um 13:02:51 Uhr
Goto Top
Nutze die Möglichkeiten ;)
Chat GPT sagt:
robocopy "C:\Ordner\A" "C:\Ordner\B" /MIR /w:5 /r:2 /COPYALL /DCOPY:T /MOVE /UNILOG+:"C:\Users\User\Desktop\robocopy.log"  

edit: bei mir werden die so mitgenommen.
Crusher79
Crusher79 13.06.2023 um 13:09:45 Uhr
Goto Top
Hallo,

https://serverfault.com/questions/288631/what-switches-can-robocopy-use- ...

Da ist es nochmal erklärt. Dein Snippet kopiert aber bei mir Ordner Datum und Zeit mit.

Hab das hier mal gefunden. Schon etliche Jahre her. Damit kannst du es fixen. Zumindest wird anhand der jüngsten Datei im Ordner dessen Datum gesetzt.

Lange nicht mehr genutzt. Kannst es ja mal auf Test Ordner los lassen.


function Set-FolderDateOldest
{
    Param([parameter(ValueFromPipeline=$true)]$Folder)
    
    Process
    {
        $oldest = Get-ChildItem $Folder.FullName | 
            Sort-Object -Property LastWriteTime |
            Select-Object -First 1
        
        if ($oldest) {
            $Folder | Set-ItemProperty -Name CreationTime -Value $oldest.LastWriteTime
            $Folder | Set-ItemProperty -Name LastWriteTime -Value $oldest.LastWriteTime
        } else {
            Write-Warning "Empty Folder"  
        }
    }
}

$pathDepth = {
    $separator = [System.IO.Path]::DirectorySeparatorChar
    @($_.FullName.Split($separator)).Count - 1
}

$Path = "D:\Documents\TestDir"  
Get-ChildItem -Recurse $Path |
    Where-Object { $_.PsIsContainer } |
    Sort-Object $pathDepth -Descending |
    Set-FolderDateOldest
em-pie
em-pie 13.06.2023 um 13:30:21 Uhr
Goto Top
Moin,

welche ROBOCOPY-Version kommt zum EInsatz?
in den ersten Versionen funktionierte das Mitschleppen des Timestamps glaube ich (noch) nicht...

Hatte das Problem damals, auf dem Server 2003 auch mal gehabt...
hohiro
hohiro 13.06.2023 aktualisiert um 16:15:36 Uhr
Goto Top
bei mir ist das leider nicht passiert. Alle Verzeichnisse haben aktuelle, also neue Timestamps bekommen. Die Dateien in den Verzeichnissen haben ihre Timestamps behalten.

Das Log hat mir nur die folgenden Optionen ausgespuckt:
Optionen: *.* /S /E /COPYALL /MOVE /PURGE /MIR /R:2 /W:5

Habe im Command aber /COPYALL /DCOPY:DAT angegeben

Robocopy Version 10.0.17763.4010

Überschreibt /COPYALL vielleicht /DCOPY:DAT`?


Edit:
Nach einigem testen habe ich das gewünschte Ergebnis mit dem folgenden prompt erzielt. Führe ich den nachfolgenden Prompt aus, wird der Timestamp vom Unterordnet übernommen:
robocopy "C:\Ordner\A" "C:\Ordner\B" /E /w:5 /r:2 /DCOPY:DAT /COPY:DATSOU /UNILOG+:C:\Users\User\Desktop\robocopy.log  

Will ich den Ordner jedoch verschieben mit /move, erhält der Unterordner wieder den aktuellen Timestamp.
robocopy "C:\Ordner\A" "C:\Ordner\B" /E /w:5 /r:2 /DCOPY:DAT /COPY:DATSOU /UNILOG+:C:\Users\User\Desktop\robocopy.log /move  

Kopiert ihr immer erst und löscht dann?
kreuzberger
kreuzberger 14.06.2023 um 07:49:12 Uhr
Goto Top
Kopiert ihr immer erst und löscht dann?
Grundsätzlich immer, JA
Kreuzberger
nEmEsIs
nEmEsIs 15.06.2023 um 08:31:35 Uhr
Goto Top
Hi

Ein move ist ja auch nichts anderes als ein copy und delete wenn es über Datenträger hinweg geht.
Nur das man beim reinen copy danach selbst Hand an legen muss, ist aber wie gemerkt hast vll die bessere Wahl

Mit freundlichen Grüßen Nemesis