abracadaver
Goto Top

Viele Dateien per Batch hintereinander durch Konverter jagen

Hallo,
sorry falls die Lösung meines Problemes doch irgendwo in den weiten Welten dieses Boards schon besprochen wurde, aber ich suche nun schon seit über 2 Stunden und habe leider nichts passendes gefunden. Deshalb hoffe ich hier auf die Hilfe von Kennern und Könnern.

Mein Problem ist eigentlich ganz simpel und mit Sicherheit auch leicht zu beantworten, nur ist es für jemanden, der über die Befehle echo und start nicht hinauskommst sehr schwer.

In meiner Freizeit erstelle ich kleine Grafikmods für das Spiel Call Of Duty 4. Die Texturen und Grafiken liegen im Format *iwi vor.
Zum konvertieren dieser *iwi-Dateien gibts es einen kleinen Konverter der nach dem Drag&Drop Prinzip benutzt, heisst, jede dieser Grafikdateien muss einzeln in den Konverter gezogen werden und wird dann in das *dds-Format konvertiert.
Bei einigen tausend Dateien kann man dafür eine lange Zeit einplanen.
Nun habe ich mir überlegt, diese Sache zu vereinfachen und einfach eine Batch-Datei die Arbeit für mich übernehmen zu lassen.

Soweit klappt es auch. Die Batch greift auf den Konverter zu und konvertiert die vorher angegeben Dateien nach folgendem Prinzip:

start iwi2dds.exe images\3_cursor3.iwi
start iwi2dds.exe images\55_gallon_drum.iwi 

usw.

Aber wie gesagt. Bei einigen tausend Dateien müsste ich jede Datei einzeln eintragen.

Nun hatte ich noch dunkel in Erinnerung, das mit "*.iwi" alle Dateien mit der Endung iwi aufgerufen werden.

Ersetze ich nun jedoch den Dateinamen dadurch, passiert rein gar nichts.
Leider sind mir die Befehle und deren Anwendung nicht geläufig um weiter aufbauen zu können und daher frage ich einfach hier, ob jemand eine Lösung für mein Problem hätte.

Testweise liegt der Ordner mit dem Converter im Verzeichnis "c:\Test" und der Ordner mit dem Bildmaterial im Ordner "c:\Test\images".
Der Konverter legt die neu erzeugte Datei nach dem Konvertieren automatisch in dem Verzeichnis ab, in dem sich auch die Quelldatei befindet.

Dies wäre eigentlich das Hauptproblem.

Desweiteren würde ich mich darüber freuen, wenn mir jemand erklären könnte, wie ich mit dieser Batch automatisch ein Logfile anlegen kann, in dem die Dateinamen der Dateien gespeichert sind, die durch den Converter gelaufen sind.

Der Konverter nennt sich schlicht und einfach "dds2iwi.exe".

Mein Betriebssystem ist: Windows Vista Ultimate 64Bit.

Ich bedanke mich schon mal vielmals im Vorraus und wünsche noch einen schönen Sonntag Abend.

mfg, Torsten

Content-Key: 132323

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

Printed on: April 18, 2024 at 02:04 o'clock

Member: rubberman
rubberman Dec 27, 2009 at 15:40:33 (UTC)
Goto Top
Hallo Abracadaver,

versuch mal, ob dich das weiterbringt:
@echo off &setlocal
for %%i in (".\images\*.iwi") do (  
  iwi2dds.exe "%%i" &&echo %%i>>test.log  
)
echo fertig
pause

Bitte beachte dass keine Sonderzeichen der Kommandozeile (wie etwa & oder %) in den Dateinamen vorkommen dürfen. Diese führen zu Fehlern in der Abarbeitung.

Grüße
rubberman
Member: Abracadaver
Abracadaver Dec 27, 2009 at 16:36:06 (UTC)
Goto Top
Super.
Ich danke dir vielmals.
Das klappt ja besser als erwartet.
Die Log-Datei wird zwar nicht angelegt, aber das ist so wichtig nun auch nicht. Hauptsache das konvertieren läuft in einem Rutsch.
Wunderbarerweise stoppt die Batch auch, wenn eine Datei nicht konvertiert werden kann (bei manchen Dateien klappt es aus irgendeinem Grunde nicht) und lässt sich danach per Tastendruck fortführen. So kann man auch direkt sehen, welche Datei nicht funktioniert.
Super Arbeit deinerseits und gar nicht so viel Code wie erwartet.
Man muss halt nur wissen wie, und das scheinst du definitv zu wissen.
Also danke nochmals und noch einen schönen Sonntag face-smile