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...
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ß!
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ß!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1514021184
Url: https://administrator.de/contentid/1514021184
Ausgedruckt am: 24.11.2024 um 20:11 Uhr
2 Kommentare
Neuester Kommentar
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%
)
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.