carnap
Goto Top

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.

Content-Key: 141802

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

Printed on: April 20, 2024 at 01:04 o'clock

Member: Midivirus
Midivirus Apr 30, 2010 at 06:43:50 (UTC)
Goto Top
interessatn wäre, wie du sie hochlädst, also welches Protokoll (FTP?)

Wenn die Intelligenz der Batch bekannt ist, können wir dazu etwas sagen!

Ansonsten kurz mal danach suchen, wie man mit Batch einen Ordnerinhalt auflistet etc.

Es heißt Parameter ;)
Member: bastla
bastla Apr 30, 2010 at 06:47:50 (UTC)
Goto Top
Hallo Carnap!

Sollte sich (ohne der IT-Abteilung ins Gehege zu kommen face-wink) 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.
Grüße
bastla

[Edit] Fehlendes Prozentzeichen in Zeile 7 ergänzt [/Edit]
Member: Carnap
Carnap Apr 30, 2010 at 09:00:58 (UTC)
Goto Top
Hallo bastla,

ganz herzlichen Dank für die Mühe. Ich bin mir bewusst, dass meine Frage vielleicht etwas keck rübekommt (Problem: ... Bitte macht mal...),
der Punkt ist nur, dass ich über das Wochenende ein paar Hundert Dateien auf den Server kopieren soll und ich auf die Schnelle nicht weiß, woher ich mir die Grundlagen der Batch-Programmierung holen soll.

Ich habe das erste Skript wie folgt angepasst:

@echo off & setlocal
set "Basis=E:\image_upload"
set "Script=T:\CAMPUSonline\Applications\Tools\image2dev.bat"
pushd "%Basis%"
for /f "delims=" %%i in ('dir /b *.jpg') do call "%Script%" "%%i"
popd
echo Fertig.

Wie gesagt, das eigentliche Kopierskript "image2dev.bat" darf ich nicht anrühren, ich darf es aber in Batch-Dateien verwenden.
Ich habe das Skript versucht und dabei folgende Fehlermeldung bekommen:

http://www.pic-upload.de/view-5469947/skript_fehler01.png.html

Weißt du vielleicht, woran es haken könnte?

--> Wenn die Frage zu sehr ins Detail geht, bi8tte ignorieren, ich werde dann nicht mehr lästig fragen.
Jedenfalls besten Dank schon Mal.

Carnap
Member: bastla
bastla Apr 30, 2010 at 09:09:08 (UTC)
Goto Top
Hallo Carnap!
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 ...
Member: Carnap
Carnap Apr 30, 2010 at 09:40:18 (UTC)
Goto Top
Hi Bastla,

E S F U N K T ! ! !

Ganz ganz herzlichen Dank. Das zweite Skript funktioniert tadellos. Du kannst dir kaum vorstellen, wie es einem geht, der seit drei Wochen durcharbeitet, eigentlich keine Zeit für die Einarbeitung in ein neues Thema hat und dann solch eine Hilfe bekommt.
Danke.

Carnap
Member: Midivirus
Midivirus Apr 30, 2010 at 14:44:01 (UTC)
Goto Top
wieder einen glücklich gemacht ...