Batch-Datei zum Hochladen von Grafiken (cmd)
Gesucht: Skript, das rekursiv für alle Garfikdateien in einem Ordner den Befehl image2dev.bat E:\uploads\image<n>.jpg ausführt.
System: Windows XP pro, SP 3
Ich muss regelmäßig große Megen an Grafiken auf einen Server hochladen. Dazu werfe ich zuerst die Grafiken (image1.jpg, image2.jpg, ...) lokal in einen Ordner E:\grafiken.
Zum Kopieren stellt die IT-Abteilung ein Skript "image2dev.bat" zur Verfügung. Dieses darf ich nicht angreifen, sondern darf es in weiteren Skripts nur verwenden.
Was ich nun tun muss, ist das: Ich wechsle in den Ordner, in dem image2dev.bat sitzt, also nach U:\Ordner1\Ordner2\Ordner3, und dann rufe ich für jede Datei, die ich hochladen will, das Programm mit dem Pfad zur jeweiligen Grafik-Datei als Argument (sagt man so?) auf:
image2dev E:\grafiken\image1.jpg [enter]
Dann warte ich ein paar Sekunden. Wenn es fertig ist, die nächste:
image2dev E:\grafiken\image2.jpg [enter]
Wenn es fertig ist, die nächste:
image2dev E:\grafiken\image3.jpg [enter]
usw.
Das kann bis zu 150 Mal so weitergehen. Ich sag euch, ich tippe mir noch einen Wolf.
Meine Frage: Wie stelle ich es an, ein Skript mit folgender Funktion zu schreiben:
1) Ich lege das Skript "raufkopieren.bat" in den Ordner mit den Grafiken, also nach E:\grafiken.
2) Das Skript sucht nun im Ordner E:\grafiken nach Dateien mit der Endung *.jpg und führt dann nacheinander die Befehle aus, die ich eintippen muss.
3) Wenn die letzte Datei hochgeladen ist, bleibt es stehen.
4) Wichtig: Das Skript wartet ab, bis der Vorgang des Hochladens abgeschlossen ist und setzt erst dann den nächsten Befehl ab.
Wie stelle ich so etwas an?
Carnap
Edit 02.05.2010: Tippfehler entfernt.
System: Windows XP pro, SP 3
Ich muss regelmäßig große Megen an Grafiken auf einen Server hochladen. Dazu werfe ich zuerst die Grafiken (image1.jpg, image2.jpg, ...) lokal in einen Ordner E:\grafiken.
Zum Kopieren stellt die IT-Abteilung ein Skript "image2dev.bat" zur Verfügung. Dieses darf ich nicht angreifen, sondern darf es in weiteren Skripts nur verwenden.
Was ich nun tun muss, ist das: Ich wechsle in den Ordner, in dem image2dev.bat sitzt, also nach U:\Ordner1\Ordner2\Ordner3, und dann rufe ich für jede Datei, die ich hochladen will, das Programm mit dem Pfad zur jeweiligen Grafik-Datei als Argument (sagt man so?) auf:
image2dev E:\grafiken\image1.jpg [enter]
Dann warte ich ein paar Sekunden. Wenn es fertig ist, die nächste:
image2dev E:\grafiken\image2.jpg [enter]
Wenn es fertig ist, die nächste:
image2dev E:\grafiken\image3.jpg [enter]
usw.
Das kann bis zu 150 Mal so weitergehen. Ich sag euch, ich tippe mir noch einen Wolf.
Meine Frage: Wie stelle ich es an, ein Skript mit folgender Funktion zu schreiben:
1) Ich lege das Skript "raufkopieren.bat" in den Ordner mit den Grafiken, also nach E:\grafiken.
2) Das Skript sucht nun im Ordner E:\grafiken nach Dateien mit der Endung *.jpg und führt dann nacheinander die Befehle aus, die ich eintippen muss.
3) Wenn die letzte Datei hochgeladen ist, bleibt es stehen.
4) Wichtig: Das Skript wartet ab, bis der Vorgang des Hochladens abgeschlossen ist und setzt erst dann den nächsten Befehl ab.
Wie stelle ich so etwas an?
Carnap
Edit 02.05.2010: Tippfehler entfernt.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 141802
Url: https://administrator.de/contentid/141802
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Carnap!
Sollte sich (ohne der IT-Abteilung ins Gehege zu kommen ) etwa so lösen lassen (jeweils ungetestet):
<code">@echo off & setlocal
set "Basis=E:\Grafiken"
set "Script=U:\Ordner1\Ordner2\Orderner3\image2dev.bat"
pushd "%Basis%"
for /f "delims=" %%i in ('dir /b *.jpg') do call "%Script%" "%%i"
popd
echo Fertig.
Sollte es tatsächlich erforderlich sein, vorweg in den "Script-Ordner" zu wechseln, dann:
Grüße
bastla
[Edit] Fehlendes Prozentzeichen in Zeile 7 ergänzt [/Edit]
Sollte sich (ohne der IT-Abteilung ins Gehege zu kommen ) etwa so lösen lassen (jeweils ungetestet):
<code">@echo off & setlocal
set "Basis=E:\Grafiken"
set "Script=U:\Ordner1\Ordner2\Orderner3\image2dev.bat"
pushd "%Basis%"
for /f "delims=" %%i in ('dir /b *.jpg') do call "%Script%" "%%i"
popd
echo Fertig.
Sollte es tatsächlich erforderlich sein, vorweg in den "Script-Ordner" zu wechseln, dann:
@echo off & setlocal
set "Basis=E:\Grafiken"
set "Scriptordner=U:\Ordner1\Ordner2\Orderner3"
set "Script=image2dev.bat"
pushd "%Scriptordner%"
for /f "delims=" %%i in ('dir /b "%Basis%\*.jpg"') do call "%Script%" "%Basis%\%%i"
popd
echo Fertig.
bastla
[Edit] Fehlendes Prozentzeichen in Zeile 7 ergänzt [/Edit]
Hallo Carnap!
Grüße
bastla
P.S.:
Weißt du vielleicht, woran es haken könnte?
Das zwar nicht - aber vielleicht versuchst Du es noch mit der zweiten Variante (Achtung: In Zeile 7 habe ich noch ein Prozentzeichen ergänzt) ...Grüße
bastla
P.S.:
... ich werde dann nicht mehr lästig fragen.
Kein Problem - ich muss ja im Fall des Falles nicht antworten ...