Ex4mp1e
Lieutenant
- Registriert
- Mai 2016
- Beiträge
- 515
Moin zusammen,
ich bastel aktuell an einem Batch-Script das per Autotask alle 15 Minuten eine Liste an Dateipfaden (txt-Dokument) durchgehen soll, und dann die entsprechenden Verzeichnisse in ein Netzlaufwerk kopieren soll (eingebundene Nextcloud).
Die "verzeichnisse.txt" sieht folgendermaßen aus:
In dem Dateipfad "C:\...\03 - Daten" gibt es noch mehr Unterordner und auch einzelne Dateien. Die sollen nicht kopiert werden, nur die entsprechenden vier Ordner.
Die Zielpfade sehen dann folgendermaßen aus:
"N:\2022\1234 - Beispiel\03- Daten\JPG"
"N:\2022\1234 - Beispiel\03- Daten\DOC"
"N:\2022\1234 - Beispiel\03- Daten\PDF"
"N:\2022\1234 - Beispiel\03- Daten\XML"
Es wäre aber auch kein Problem, wenn die Dateipfade im Ziel bis auf den Laufwerksbuchstaben 1:1 so lauten würden, wie die der Quelle.
Einmaliges manuelles Anlegen der Zielverzeichnisse ist ebenfalls kein Problem.
Was ich bisher gebastelt habe ist folgendes:
Der Schnipsel Code läuft durch meine txt, ignoriert alle nervigen Leerzeichen, und packt mir immer den Inhalt einer Zeile in Variable z.
Danach führt es für jedes z einen Robocopy-Befehl aus.
Soweit, so gut. Leider kopiert Robocopy natürlich nicht den Ordner, sondern nur den Inhalt.
Außerdem schmeißt das Script die Inhalte meiner Ordner unsortier in N:\2022.
Ich bräuchte jetzt Unterstützung dabei, dass ich im Script irgendwie die Ziele der robocopy-Jobs ebenfalls dynamisch gestalte, damit die Dateien in korrekte Unterordner geschmissen werden.
Ich hab das ganze mal mit einer weiteren for-Schleife innerhalb der ersten for-Schleife versucht, aber das hat natürlich nicht geklappt...
Mir fehlt da also gerade sowohl theoretisch die Idee, wie man das umsetzt, als auch ggfs. praktisch das Wissen, mit welchen Befehlen ich das programmiere.
Ich bedanke mich schon mal für jeden der ein wenig Hirnschmalz für mein Problem erübrigt.
LG
Ex4
ich bastel aktuell an einem Batch-Script das per Autotask alle 15 Minuten eine Liste an Dateipfaden (txt-Dokument) durchgehen soll, und dann die entsprechenden Verzeichnisse in ein Netzlaufwerk kopieren soll (eingebundene Nextcloud).
Die "verzeichnisse.txt" sieht folgendermaßen aus:
Code:
"C:\Dateipfad\2022\1234 - Beispiel\03 - Daten\JPG"
"C:\Dateipfad\2022\1234 - Beispiel\03 - Daten\DOC"
"C:\Dateipfad\2022\1234 - Beispiel\03 - Daten\PDF"
"C:\Dateipfad\2022\1234 - Beispiel\03 - Daten\XML"
"C:\Dateipfad\2022\5678 - Muster\03 - Daten\JPG"
"C:\Dateipfad\2022\5678 - Muster\03 - Daten\DOC"
"C:\Dateipfad\2022\5678 - Muster\03 - Daten\PDF"
"C:\Dateipfad\2022\5678 - Muster\03 - Daten\XML"
"C:\Dateipfad\2022\9999 - Exempel\03 - Daten\JPG"
"C:\Dateipfad\2022\9999 - Exempel\03 - Daten\DOC"
"C:\Dateipfad\2022\9999 - Exempel\03 - Daten\PDF"
"C:\Dateipfad\2022\9999 - Exempel\03 - Daten\XML"
In dem Dateipfad "C:\...\03 - Daten" gibt es noch mehr Unterordner und auch einzelne Dateien. Die sollen nicht kopiert werden, nur die entsprechenden vier Ordner.
Die Zielpfade sehen dann folgendermaßen aus:
"N:\2022\1234 - Beispiel\03- Daten\JPG"
"N:\2022\1234 - Beispiel\03- Daten\DOC"
"N:\2022\1234 - Beispiel\03- Daten\PDF"
"N:\2022\1234 - Beispiel\03- Daten\XML"
Es wäre aber auch kein Problem, wenn die Dateipfade im Ziel bis auf den Laufwerksbuchstaben 1:1 so lauten würden, wie die der Quelle.
Einmaliges manuelles Anlegen der Zielverzeichnisse ist ebenfalls kein Problem.
Was ich bisher gebastelt habe ist folgendes:
Code:
for /f "delims=;" %%z in (C:\Dateipfad\2022\verzeichnisse.txt) do (
robocopy %%z "N:\2022" *.* /E /IPG:5 /R:3 /W:10 /NP /TEE
)
Der Schnipsel Code läuft durch meine txt, ignoriert alle nervigen Leerzeichen, und packt mir immer den Inhalt einer Zeile in Variable z.
Danach führt es für jedes z einen Robocopy-Befehl aus.
Soweit, so gut. Leider kopiert Robocopy natürlich nicht den Ordner, sondern nur den Inhalt.
Außerdem schmeißt das Script die Inhalte meiner Ordner unsortier in N:\2022.
Ich bräuchte jetzt Unterstützung dabei, dass ich im Script irgendwie die Ziele der robocopy-Jobs ebenfalls dynamisch gestalte, damit die Dateien in korrekte Unterordner geschmissen werden.
Ich hab das ganze mal mit einer weiteren for-Schleife innerhalb der ersten for-Schleife versucht, aber das hat natürlich nicht geklappt...
Mir fehlt da also gerade sowohl theoretisch die Idee, wie man das umsetzt, als auch ggfs. praktisch das Wissen, mit welchen Befehlen ich das programmiere.
Ich bedanke mich schon mal für jeden der ein wenig Hirnschmalz für mein Problem erübrigt.
LG
Ex4