inspiratio
Goto Top

Batch Datei - Verzeichnis kopieren funktioniert nicht - nur Dateien

Hallo zusammen,

ich habe eine Batch Datei erstellt wo die Unterverzeichnisse von A nach B kopiert werden sollen:

@echo off
xcopy C:\instc\VerzeichnisA C:\instc\Verzeichnisb /Y



Leider werden nur die Dateien kopiert, jedoch nicht die Unterverzeichnisse? Könnt ihr mir bitte helfen.

Danke face-smile

Content-Key: 364493

Url: https://administrator.de/contentid/364493

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: Meierjo
Lösung Meierjo 12.02.2018 um 13:26:26 Uhr
Goto Top
Hallo

Schau dir mit xcopy /? die Schalter an, die Xcopy bietet

Du suchst wahrscheinlich /S /E

Gruss
Mitglied: Penny.Cilin
Penny.Cilin 12.02.2018 um 13:49:03 Uhr
Goto Top
Hallo,

alternativ kannst Du auch Robocopy nutzen. Damit hast Du mehr Funktionen und mehr Kontrolle.
Die Syntax erhältst Du mit
robocopy /? | more
.

Gruss Penny
Mitglied: inspiratio
inspiratio 12.02.2018 um 13:49:28 Uhr
Goto Top
SUPER! Vor Lauter Bäume sich ich den Wald nicht ^^
Mitglied: inspiratio
inspiratio 12.02.2018 um 15:21:02 Uhr
Goto Top
Hi, danke aber das ist ein Windows Server 2003 und ich glaube, dort funktioniert kein robocopy.

Aktuell merke ich das es echt viele Dateien in den Unterverzeichnissen sind. Gibt es eine Möglichkeit dass das Script nicht alle Verzeichnisse / DAteien durchläuft, sondern nur die die hinzugefügt, gelöscht oder geändert wurden?
Mitglied: Penny.Cilin
Lösung Penny.Cilin 12.02.2018 um 15:30:12 Uhr
Goto Top
Zitat von @inspiratio:

Hi, danke aber das ist ein Windows Server 2003 und ich glaube, dort funktioniert kein robocopy.
Doch, das findest Du in den Windows Server 2003 Resource Kit Tools.

Aktuell merke ich das es echt viele Dateien in den Unterverzeichnissen sind. Gibt es eine Möglichkeit dass das Script nicht alle Verzeichnisse / DAteien durchläuft, sondern nur die die hinzugefügt, gelöscht oder geändert wurden?
Deshalb nutze Robocopy, dort kannst Du Verzeichnisse und / oder Dateien ausschliessen.
Robocopy Hilfe von Windows 7. Beim Windows Server 2003 sind einige Parameter nicht enthalten.

Außerdem Windows Server 2003 ist aus dem Support. Wird zeit, daß der abgeschaltet wird.

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren für Windows
-------------------------------------------------------------------------------

  Gestartet: Mon Feb 12 15:27:52 2018

        Syntax :: ROBOCOPY Quelle Ziel [Datei [Datei]...] [Optionen]

        Quelle :: Quellverzeichnis (Laufwerk:\Pfad oder \\Server\Freigabe\Pfad)
          Ziel :: Zielverzeichnis (Laufwerk:\Pfad oder \\Server\Freigabe\Pfad)
         Datei :: Zu kopierende Dateien (Namen/Platzhalter: Standard ist "*.*")  

::
:: Kopieroptionen:
::
            /S :: Kopiert Unterverzeichnisse, jedoch keine leeren Unterverzeichnisse.
            /E :: Kopiert Unterverzeichnisse, einschließlich leerer Unterverzeichnisse.
        /LEV:n :: Kopiert nur die obersten Ebenen der Quellverzeichnisstruktur.

            /Z :: Kopiert Dateien im Neustartmodus.
            /B :: Kopiert Dateien im Sicherungsmodus.
           /ZB :: Verwendet den Neustartmodus. Im Fall einer Zugriffsverweigerung wird der Sicherungsmodus verwendet.
       /EFSRAW :: Kopiert alle verschlüsselten Dateien im EFS RAW-Modus.

/COPY:copyflags:: Gibt an, welche Inhalte für Dateien kopiert werden sollen (der Standard ist "/COPY:DAT").  
                  (Kopierflags : D=Daten, A=Attribute, T=Zeitstempel).
                  (S=Sicherheit=NTFS-ACLs, O=Besitzerinformationen, U=Überwachungsinformationen).

      /DCOPY:T :: Kopiert Verzeichniszeitstempel.

          /SEC :: Kopiert Dateien mit Sicherheitsinformationen (entspricht "/COPY:DATS").  
      /COPYALL :: Kopiert alle Dateiinformationen (entspricht "/COPY:DATSOU").  
       /NOCOPY :: Kopiert keine Dateiinformationen (eignet sich für die Verwendung mit "/PURGE").  

       /SECFIX :: Korrigiert die Dateisicherheit in allen Dateien, auch in ausgelassenen Dateien.
       /TIMFIX :: Korrigiert die Uhrzeitangaben für Dateien in allen Dateien, auch in ausgelassenen Dateien.

        /PURGE :: Löscht Zieldateien/-verzeichnisse, die in der Quelle nicht mehr vorhanden sind.
          /MIR :: Spiegelt eine Verzeichnisstruktur (Entspricht "/E" mit "/PURGE").  

          /MOV :: Verschiebt Dateien (löscht Dateien nach dem Kopieren an der Quelle).
         /MOVE :: Verschiebt Dateien UND Verzeichnisse (löscht sie nach dem Kopieren an der Quelle).

/A+:[RASHCNET] :: Fügt die vorhandenen Attribute den kopierten Dateien hinzu.
/A-:[RASHCNET] :: Entfernt die vorhandenen Attribute von den kopierten Dateien.

       /CREATE :: Erstellt eine Verzeichnisstruktur und nur Dateien mit einer Länge von Null.
          /FAT :: Erstellt Zieldateien nur unter Verwendung von 8.3 FAT-Dateinamen.
          /256 :: Deaktiviert die Unterstützung für sehr lange Pfade (> 256 Zeichen).

        /MON:n :: Überwacht die Quelle. Wird erneut ausgeführt, wenn mehr als n Änderungen gefunden werden.
        /MOT:m :: Überwacht die Quelle. Wird bei einer Änderung erneut ausgeführt in m Minuten.

 /RH:hhmm-hhmm :: Ausführungsstunden - Steuert, wann neue Kopiervorgänge gestartet werden können.
           /PF :: Überprüft die Ausführungsstunden pro einzelne Datei (nicht pro Durchgang).

        /IPG:n :: Abstand zwischen Paketen (ms), um bei langsamen Verbindungen Bandbreite freizugeben.

           /SL :: Kopiert symbolische Verknüpfungen gegenüber dem Ziel.

       /MT[:n] :: Multithreadkopien mit n Threads erstellen (Standardwert: 8).
                  n muss zwischen 1 und 128 (jeweils einschließlich) liegen.
                  Die Option ist nicht mit "/IPG" und "/EFSRAW" kompatibel.  
                  Die Ausgabe kann mit "/LOG" umgeleitet werden,  
                  um eine bessere Leistung zu erzielen.

::
:: Dateiauswahloptionen:
::
            /A :: Kopiert nur Dateien mit dem "Archive"-Attribut.  
            /M :: Kopiert nur Dateien mit dem "Archive"-Attribut und setzt das Attribut zurück.  
/IA:[RASHCNETO]:: Schließt nur Dateien ein, bei denen eines der Attribute festgelegt ist.
/XA:[RASHCNETO]:: Schließt Dateien aus, bei denen eines der Attribute festgelegt ist.

/XF Datei[Datei]:: Schließt Dateien aus, die mit den angegebenen Namen/Pfaden/Platzhaltern übereinstimmen.
/XD Verz.[Verz.]:: Schließt Verzeichnisse aus, die mit den angegebenen Namen/Pfaden übereinstimmen.

           /XC :: Schließt geänderte Dateien aus.
           /XN :: Schließt neuere Dateien aus.
           /XO :: Schließt ältere Dateien aus.
           /XX :: Schließt zusätzliche Dateien und Verzeichnisse aus.
           /XL :: Schließt einsame Dateien und Verzeichnisse aus.
           /IS :: Schließt identische Dateien ein.
           /IT :: Schließt optimierte Dateien ein.

        /MAX:n :: Maximale Dateigröße - schließt Dateien aus, die größer als n Bytes sind.
        /MIN:n :: Minimale Dateigröße - schließt Dateien aus, die kleiner als n Bytes sind.

     /MAXAGE:n :: Maximales Dateialter - schließt Dateien aus, die älter als n Tage/Datum sind.
     /MINAGE:n :: Minimales Dateialter - schließt Dateien aus, die neuer als n Tage/Datum sind.
     /MAXLAD:n :: Maximales Datum des letztes Zugriffs - schließt Dateien aus, die seit n nicht verwendet wurden.
     /MINLAD:n :: Minimales Datum des letztes Zugriffs - schließt Dateien aus, die seit n verwendet wurden.
                  (Wenn n < 1900, dann ist n = n Tage, andernfalls ist n = Datum im Format JJJJMMTT).

           /XJ :: Schließt Abzweigungspunkte aus (werden normalerweise standardmäßig eingeschlossen).

          /FFT :: Geht von FAT-Uhrzeitangaben für Dateien aus (Granularität von zwei Sekunden).
          /DST :: Kompensiert Zeitunterschiede von einer Stunden aufgrund der Sommerzeit.

          /XJD :: Schließt Abzweigungspunkte für Verzeichnisse aus.
          /XJF :: Schließt Abzweigungspunkte für Dateien aus.

::
:: Wiederholungsoptionen:
::
          /R:n :: Anzahl von Wiederholungsversuchen bei fehlerhaften Kopiervorgängen. Der Standardwert ist 1 Million.
          /W:n :: Wartezeit zwischen Wiederholungsversuchen. Der Standardwert ist 30 Sekunden.

          /REG :: Speichert "/R:n" und "/W:n" in der Registrierung als Standardeinstellungen.  

          /TBD :: Wartet darauf, dass Freigabenamen definiert werden (Wiederholungsfehler 67).

::
:: Protokollierungsoptionen :
::
            /L :: Listet nur auf. Es werden keine Kopiervorgänge ausgeführt, Zeitstempel erstellt oder Dateien gelöscht.
            /X :: Meldet alle zusätzlichen Dateien, nicht nur die ausgewählten Dateien.
            /V :: Erstellt eine ausführliche Ausgabe mit ausgelassenen Dateien.
           /TS :: Schließt Zeitstempel von Quelldateien in die Ausgabe ein.
           /FP :: Schließt den vollständigen Pfadnamen von Dateien in die Ausgabe ein.
        /BYTES :: Gibt Größen in Bytes aus.

           /NS :: Keine Größe - Dateigrößen werden nicht protokolliert.
           /NC :: Keine Klasse - Dateiklassen werden nicht protokolliert.
          /NFL :: Keine Dateiliste - Dateinamen werden nicht protokolliert.
          /NDL :: Keine Verzeichnisliste - Verzeichnisnamen werden nicht protokolliert.

           /NP :: Kein Status - der Prozentsatz kopierter Elemente wird nicht angezeigt.
          /ETA :: Zeigt die ungefähre Empfangszeit der kopierten Dateien an.

    /LOG:Datei :: Gibt den Status der Protokolldatei aus (überschreibt das vorhandene Protokoll).
   /LOG+:Datei :: Gibt den Status der Protokolldatei aus (wird an das vorhandene Protokoll angefügt).

 /UNILOG:Datei :: Gibt den Status der Protokolldatei als UNICODE aus (überschreibt das vorhandene Protokoll).
/UNILOG+:Datei :: Gibt den Status der Protokolldatei als UNICODE aus (wird an das vorhandene Protokoll angefügt).

          /TEE :: Gibt Daten in das Konsolenfenster und die Protokolldatei aus.

          /NJH :: Kein Auftragsheader.
          /NJS :: Keine Auftragszusammenfassung.

      /UNICODE :: Gibt den Status als UNICODE aus.

::
:: Auftragsoptionen:
::
  /JOB:Auftragsname :: Übernimmt Parameter aus der angegebenen Auftragsdatei.
 /SAVE:Auftragsname :: Speichert Parameter in der angegebenen Auftragsdatei.
              /QUIT :: Beendet den Vorgang nach der Verarbeitung der Befehlszeile (zum Anzeigen von Parametern).
              /NOSD :: Es ist kein Quellverzeichnis angegeben.
              /NODD :: Es ist kein Zielverzeichnis angegeben.
                /IF :: Schließt die folgenden Dateien ein.


C:\Windows\System32 >
Mitglied: inspiratio
inspiratio 12.02.2018 um 15:39:47 Uhr
Goto Top
Das bedeutet mein Befehl müsste dann wie folgt lauten:

@echo off
robocopy D:\VerzeichnisA D:\VerzeichnisB /MOT:m /Y /E


Ich probier das gleich aus.
Mitglied: Penny.Cilin
Lösung Penny.Cilin 12.02.2018 um 15:56:04 Uhr
Goto Top
Zitat von @inspiratio:

Das bedeutet mein Befehl müsste dann wie folgt lauten:

 //@echo off
> robocopy D:\VerzeichnisA D:\VerzeichnisB /MOT:m /Y /E//
Wieso /Y ?????????
Eher
/S /E
und
/MOT:m musst Du sinngemäß ersetzen, etwa /MOT:15


Und wenn Du
robocopy D:\VerzeichnisA D:\VerzeichnisB /MOT:15 /Y /E /L
nutzt, wird nicht direkt kopiert, sondern er zeigt Dir an, was kopiert werden würde.
Ich probier das gleich aus.

Gruss Penny
Mitglied: inspiratio
inspiratio 13.02.2018 um 13:25:00 Uhr
Goto Top
wie bekomme ich das Script dazu gelöschte Ordner im VerzeichnisA auch im VerzeichnisB zu löschen?
Mitglied: inspiratio
inspiratio 13.02.2018 um 13:32:32 Uhr
Goto Top
schon gefunden /PURGE

face-smile
Mitglied: Penny.Cilin
Penny.Cilin 13.02.2018 um 13:37:25 Uhr
Goto Top
Zeige bitte mal genau auf, was Du meinst. Nicht das es mißverstanden wird.
Meinst Du mit VerzeichnisA und VerzeichnisB die Verzeichnisse der Quelle oder dem Ziel.

Mittels
/MIR
kannst Du Quelle und Ziel spiegeln. Beschäftige Dich mit Robocopy, es ist ein mächtiges Tool. Grade der Parameter
/MIR
kann zu Verwirrung sorgen.

Grundsätzlich nutze ich bei Robocopy immer die Parameter
/Tee /L /LOG:<logdatei>
.
Mittels
/L
kannst Du den Kopiervorgang zuerst auflisten lssen ==> eine Art Simulation.
Aus diesem Grunde habe ich in meinen Batches, wo ich Robocopy nutze, einmal den Simulationsmodus und dan Kopiervorgang. So kann ich sehen, ob alles so kopiert wird, wie ich es haben will. Danach wird der eigentliche Kopiervorgang gestartet.

Gruss Penny
Mitglied: Penny.Cilin
Penny.Cilin 13.02.2018 um 13:39:42 Uhr
Goto Top
Zitat von @inspiratio:

schon gefunden /PURGE

face-smile

ACHTUNG:
/Purge
in Verbindung mit
/MIR
kann für die Daten tödlich sein. face-devilish
Deshalb genau aufpassen.

Gruss Penny
Mitglied: inspiratio
inspiratio 13.02.2018 um 14:29:33 Uhr
Goto Top
Danke für den Hinweis face-smile