none
Robocopy Syntax Fragen

    Frage

  • Hallo liebes Forum,

    ich bin gerade dabei ein Skript zu erstellen mit dem ich alte Verzeichnisse in ein Archiv kopieren kann. Soweit funktioniert das auch halbwegs, allerdings ignorieren sowohl copy-item al sauch robocopy einzelne Datein im Verzeichnis (nicht die gleichen). Das hat aber nichts mit meiner Frage zu tun.

    Meine eigentlich Frage lautet, wenn ich

    Robocopy $Source $Destination /copyall /b /s /e /r:2 /w: 5 /log+:$Logfile

    eingebe sollte robocopy doch das Verzeichnis unter $Source mit allen Unterverzeichnisse und Dateien nach $Destination kopieren, richtig? In meinem Log steht da allerdings

    Quelle : $Destination
    Ziel : $Source
    Dateien : 5
    Optionen: /S /E /COPYALL /B /R:2 /W:0

    Und kopiert wurde nichts da in $Destination noch nichts drin war.

    Und wenn ich Robocopy $Destination $Source /copyall /b /s /e /r:2 /w: 5 /log+:$Logfile eingebe steht

    Quelle : $Source
    Ziel : $Destination
    Dateien : 5
    Optionen: /S /E /COPYALL /B /R:2 /W:0

    und kopiert wurde nur die Verzeichnisstruktur und keine einzige Datei.

    Erst bei Robocopy

    $Destination $Source *.* /copyall /b /s /e /r:2 /w: 5 /log+:$Logfile

    kopiert es die meisten Dateien.

    Das Problem tritt auf bei Windows Server 2008 R2 unter PowerShell 5.1

    Was mache ich falsch?

    Montag, 11. Juni 2018 11:28

Alle Antworten

  • Meine eigentlich Frage lautet, wenn ich

    Robocopy $Source $Destination /copyall /b /s /e /r:2 /w: 5 /log+:$Logfile

    eingebe sollte robocopy doch das Verzeichnis unter $Source mit allen Unterverzeichnisse und Dateien nach $Destination kopieren, richtig

    Nein. In deinem Beispiel fehlt die Angabe welche Dateien kopiert werden sollen. Weiterhin kopiert "/COPYALL" nur Dateiinformationen.

    Um die gesamte Verzeichnisstruktur samt Inhalt zu kopieren solltest du "/MIR" angeben.

    robocopy.exe $src $dst '*' /MIR /R:3 /W:5 /log+:$Logfile

    Wenn du ganze Laufwerke kopieren möchtest empfehle ich noch unten genannte Ordner auszuschließen:

    robocopy.exe $src $dst '*' /MIR /R:3 /W:5 /log+:$Logfile /XD 'System Volume Information' '$RECYCLE.BIN'




    Montag, 11. Juni 2018 11:40
  • Das Problem ist das Leerzeichen zwischen W: und 5.

    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Montag, 11. Juni 2018 11:47
  • Danke schön,
    robocopy.exe $src $dst '*' /MIR /R:3 /W:5 /log+:$Logfile
    hat fast gepasst. Ich musste es bei mir nur in
    robocopy.exe $dst $src '*' /MIR /R:3 /W:5 /log+:$Logfile
    änder. Wie gesagt, mein robocopy erwartet zuerst das Ziel und dann den Ursprung.
    Montag, 11. Juni 2018 12:53
  • Auch hier ein Danke schön, hat ohne Leerzeichen auch funktioniert. Allerdings erwartet Robocopy auch hier zuerst das Ziel- und erst danach das Quellverzeichnis.
    Montag, 11. Juni 2018 13:00
  • Und bist du dir wirklich 100%-ig sicher, dass du $dst und $src richtig befüllst? Der im Netz dokumentierte Syntax ist erst die Quelle, dann das Ziel. Ich kann mir nicht vorstellen, warum das ausgerechnet bei dir anders sein soll.
    Montag, 11. Juni 2018 13:21
  • Mir fällt es schwer zu glauben dass bei dir die Syntax vertauscht sein soll...

    Schau dir das lieber nochmal ganz genau an, sonst überschreibst du womoglich dein gesamtes Quellverzeichniss.


    Powershell -> 'robocopy.exe -?'
    • Bearbeitet BoLicH Montag, 11. Juni 2018 13:36
    Montag, 11. Juni 2018 13:34
  • Bei mir laufen zwei Funktionen nacheinander ab.

    Compress-Archive -Path $Source -CompressionLevel Optimal -DestinationPath $zipName -Force
    Robocopy.exe $Destination $Source '*' /MIR /R:3 /W:5 /log+:$Logfile

    $Source ist bei beiden \Kunde\Release
    $Destination ist \!Archiv\Kunde\Release
    $zipName ist \!Archiv\!Zipfiles\Kunde\Release.zip

    Also definitiv ja, oder habe ich etwas übersehen?

    Montag, 11. Juni 2018 14:41
  • Bei mir laufen zwei Funktionen nacheinander ab.

    Compress-Archive -Path $Source -CompressionLevel Optimal -DestinationPath $zipName -Force
    Robocopy.exe $Destination $Source '*' /MIR /R:3 /W:5 /log+:$Logfile

    $Source ist bei beiden \Kunde\Release
    $Destination ist \!Archiv\Kunde\Release
    $zipName ist \!Archiv\!Zipfiles\Kunde\Release.zip

    Also definitiv ja, oder habe ich etwas übersehen?


    Ja, hier ^^

    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Montag, 11. Juni 2018 14:50
  • Habe meinen Fehler gefunden. Habe beim Aufruf der Funktion die Variablen in der falschen Reihenfolge geliefert


    • Bearbeitet WrongPlanet Dienstag, 12. Juni 2018 07:15 Fehler gefunden. Nur noch kurze Antwort nötig.
    Montag, 11. Juni 2018 18:35