Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch-Datei zum Hochladen von Grafiken (cmd)

Frage Entwicklung Batch & Shell

Mitglied: Carnap

Carnap (Level 1) - Jetzt verbinden

30.04.2010, aktualisiert 02.05.2010, 3970 Aufrufe, 6 Kommentare

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.
Mitglied: Midivirus
30.04.2010 um 08:43 Uhr
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 ;)
Bitte warten ..
Mitglied: bastla
30.04.2010 um 08:47 Uhr
Hallo Carnap!

Sollte sich (ohne der IT-Abteilung ins Gehege zu kommen ) etwa so lösen lassen (jeweils ungetestet):
01.
@echo off & setlocal 
02.
set "Basis=E:\Grafiken" 
03.
set "Script=U:\Ordner1\Ordner2\Orderner3\image2dev.bat" 
04.
 
05.
pushd "%Basis%" 
06.
for /f "delims=" %%i in ('dir /b *.jpg') do call "%Script%" "%%i" 
07.
popd 
08.
echo Fertig.
Sollte es tatsächlich erforderlich sein, vorweg in den "Script-Ordner" zu wechseln, dann:
01.
@echo off & setlocal 
02.
set "Basis=E:\Grafiken" 
03.
set "Scriptordner=U:\Ordner1\Ordner2\Orderner3" 
04.
set "Script=image2dev.bat" 
05.
 
06.
pushd "%Scriptordner%" 
07.
for /f "delims=" %%i in ('dir /b "%Basis%\*.jpg"') do call "%Script%" "%Basis%\%%i" 
08.
popd 
09.
echo Fertig.
Grüße
bastla

[Edit] Fehlendes Prozentzeichen in Zeile 7 ergänzt [/Edit]
Bitte warten ..
Mitglied: Carnap
30.04.2010 um 11:00 Uhr
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
Bitte warten ..
Mitglied: bastla
30.04.2010 um 11:09 Uhr
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 ...
Bitte warten ..
Mitglied: Carnap
30.04.2010 um 11:40 Uhr
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
Bitte warten ..
Mitglied: Midivirus
30.04.2010 um 16:44 Uhr
wieder einen glücklich gemacht ...
Bitte warten ..
Ähnliche Inhalte
Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (12)

Frage von planetIT2016 zum Thema Windows Server ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (11)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...