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, 3969 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...