arnito
Goto Top

batch script zwei befehle aus einer for schleife?

Hallo zusammen,
vermutlich eine ganz einfache Frage auf die ich aber noch keine Antwort gefunden habe:
Ich möchte mit einem Phtoshop droplet Bilder konvertieren. Ich rufe das Droplet mit einer for schleife auf:

FOR %%a IN (c:\test\*.psd) DO 8bit.exe %%a

das funktioniert sehr gut, das Droplet konvertiert die Bilder und speichert Sie als jpeg in einem anderen Verzeichnis. Anschleißend werden die Ausgangsdateien nicht mehr benötigt und sollen gelöscht werden. wenn ich das mit einer neuen for schleife machen würde befürchte ich aber das in der Zwischenzeit dazugekommen Dateien die noch nicht konvertiert wurden mit gelöscht werden, wie kann ich also dafür sorgen, das nur die Dateien die die erste Schleife durchlaufen haben gelöscht werden?

Vielen Dank

Arnold

und bitte nicht schimpfen wenn ich den Wald vor lauter Bäumen nicht gesehen habe

Content-Key: 47432

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

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

Member: miniversum
miniversum Dec 26, 2006 at 15:55:18 (UTC)
Goto Top
Das kanst du einfach mit "dranhängen":

FOR %%a IN (c:\test\*.psd) DO 8bit.exe "%%a" & del "%%a"

So werden sie konvertiert und gleich gelöscht

miniversum
Member: bastla
bastla Dec 26, 2006 at 18:13:28 (UTC)
Goto Top
Hallo arnito!

Falls die 8bit.exe einen sauberen "Errorlevel" zurückliefert (also 0 für "ohne Fehler beendet" bzw > 0 für "Fehler aufgetreten"), solltest Du für die Verknüpfung des "del"-Befehles && verwenden - dadurch wird dieser nur ausgeführt, wenn die 8bit.exe keinen Fehler gemeldet hat (Errorlevel = 0).

Grüße
bastla
Member: Biber
Biber Dec 26, 2006 at 18:22:49 (UTC)
Goto Top
Moin arnito,

nur zur Ergänzung von miniversums Lösung:

Du kannst die Befehle "8bit psd-Datei" und "lösche psd-Datei" auch mit zwei Ampersands statt einem verketten ( && statt &).
Dann wird das Löschen der jeweiligen Datei nur durchgeführt, wenn der Befehl vorher, also das Konvertieren, keinen Fehler ergibt.

FOR %%a IN (c:\test\*.psd) DO 8bit.exe "%%a" && del "%%a"  

-ist gleich bedeutend mit-
FOR %%a IN (c:\test\*.psd) DO call machWasMitPsd "%%i"  
goto :eof

:machWasMitPsd Parameter %1 ist der vollständige Name der *.psd-Datei in Hochkommata
8bit.exe "%~1"   
IF NOT Errorlevel 1 del "%~1"  

Gruß
Biber
[Edit]
Moin, bastla, alter Linksüberholer... face-wink
Frohe Weihnachten auch Dir!
[/Edit]
Member: bastla
bastla Dec 26, 2006 at 18:34:34 (UTC)
Goto Top
@Biber

Wünsche schöne Weihnachten gehabt zu haben. face-smile

... und entschuldige bitte das Vordrängeln - hatte gar nicht bemerkt, dass Du wieder in der Gegend bist. face-wink

Grüße
bastla
Member: arnito
arnito Dec 27, 2006 at 08:10:41 (UTC)
Goto Top
Hallo zusammen,
vielen Dank für eure schnelle Hilfe, ich denke damit werde ich den überwachten Ordner für Photoshop so einrichten köönnen wie ich das brauche. Ob das Photoshopdroplet artig mit exit codes arbeitet weiss ich nicht genau, werde ich aber ausprobieren und hier bei Interesse gerne nochmal posten.

Euch allen ein gutes neues Jahr

Arnold