thetoxic
Goto Top

Batch mit For-Schleife vereinfachen

Hallo zusammen,

ich habe nachfolgendes Problem, für euch wohl eher ein Problemchen.
Meine Batch-Kenntnisse sind in den letzten Jahren merklich eingerostet.

Ich würde gern nachfolgend beschriebenes Script verkürzen um im Falle einer Anpassung schneller agieren zu können.
Es handelt sich um einen einfachen Kopier-Vorgang, von mehreren Quellen in mehrere Ziele. Die Routine für den Kopiervorgang ist stets der gleiche.
Daher würde ich gern in irgendeiner Form mit einer FOR-Schleife arbeiten wollen, bekomme es aber nicht auf die Reihe...

set quellepfad=C:\TEST\

set quelle1=Ordner1
set quelle2=Ordner2
set quelle3=Ordner3

set ziel1=\\Server1\freigabe1$
set ziel2=\\Server1\freigabe2$
set ziel3=\\Server2\freigabe1$

set LogFile=C:\TEST\COPY_LOG\%Date%_Log.log


--> AB HIER <--
robocopy %quellpfad%%quelle1% %zielpfad%%ziel1% /R:1 /W:5 /E /TEE /NP /V /NDL /NFL /LOG+:%LogFile%
robocopy %quellpfad%%quelle2% %zielpfad%%ziel2% /R:1 /W:5 /E /TEE /NP /V /NDL /NFL /LOG+:%LogFile%
robocopy %quellpfad%%quelle3% %zielpfad%%ziel3% /R:1 /W:5 /E /TEE /NP /V /NDL /NFL /LOG+:%LogFile%
--> BIS HIER <--

Den markierten Teil (robocopy) würde ich gern verschlanken wollen. Das Original-Script enthält >12 Quellen/Ziele und wird durch Kommentare usw. entsprechend umfangreich und unübersichtlich. Da der der Kopier-Aufruf immer gleiche ist, würde ich dies entsprechend verschlangen wollen - Kopiere von QuelleX nach ZielX.

Ich hoffe ihr versteht mein Problem und habt sicherleich eine Idee dafür...

Danke und Gruß!

Content-ID: 1514021184

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

Ausgedruckt am: 24.11.2024 um 20:11 Uhr

149569
Lösung 149569 16.11.2021 aktualisiert um 13:53:22 Uhr
Goto Top
setlocal enabledelayedexpansion
for /l %%a in (1 1 12) do (
    robocopy "%quellpfad%!quelle%%a!" "%zielpfad%!ziel%%a!" /R:1 /W:5 /E /TEE /NP /V /NDL /NFL /LOG+:%LogFile%  
)
Tutorial zur FOR-Schleife

Aber warum für jede Kombination aus Quelle und Ziel jeweils Variablen erstellen??
Mach dir doch einfach ne Textdatei, da trägst du pro Paar eine Zeile getrennt mit Semikolon für Quelle und Ziel ein und durchläufst das mit ner For Schleife... Dann ist das Anpassen des Skripts hinterher nicht mehr nötig und du musst nur die Textdatei bearbeiten.
TheToxic
TheToxic 16.11.2021 um 13:54:23 Uhr
Goto Top
Danke dir. Es macht was es soll.
Die Anleitung hatte ich mir auch ewig durchgelesen, allerdings für mich nicht das richtige gefunden. Zu wenig praxis face-sad