kleinerbub
Goto Top

Batch - Probleme mit verzögerter Variablenerweiterung

Hallo,

Ich möchte per Batchdatei mit IrfanView Bilder verkleinern und gleichzeitg umbenennen. Dabei soll der Dateiname einen festen Stamm haben und fortlaufende Nummern am Ende.


Größe ändern klappt soweit. Der Irfanviewbefehl ist auch erstmal nebensächlich.

Das Problem ist: die Nummern werden nicht hochgezählt, sondern bleiben auf 1 (wenn ich die Variable in %% schreibe, in !! wird garnix erweitert.

Hat jemand nen heißen Tipp für mich?

Hier mal mein Code:

@echo off
set var=1
set/p filename=Dateiname:
for %%j in (%*) do (
	C:\Programme\IrfanView\i_view32.exe "%%~dpnj.JPG" /jpgq=80 /resize_long=600 /resample /aspectratio /convert=%filename%_!var!.jpg  
	set /a var+=1
)

Content-ID: 146335

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

Ausgedruckt am: 24.11.2024 um 18:11 Uhr

bastla
bastla 06.07.2010 um 13:59:17 Uhr
Goto Top
Hallo kleinerbub!

Wenn Du "delayedExpansion" willst, musst Du das auch deutlich machen:
@echo off & setlocal enabledelayedexpansion
Grüße
bastla

[Edit] @Biber: Das Bestreben, größer zu werden, habe ich schon zugunsten der Querformat-Version aufgegeben ... face-wink [/Edit]
Biber
Biber 06.07.2010 um 14:01:23 Uhr
Goto Top
Moin kleinerbub,

du musst die Verwendung von "verzögerten Variablenauflösung" ansagen, ähnlich wie beim Doppelkopf.
Sonst zählt es nicht, auch sehr ähnlich.

-> Nach dem "@echo off" in der ersten Zeile steht eigentlich immer ein " & SetLocal"
-> in deinem Fall muss aber ein "@echo off & SetLocal EnableDelayedExpansion" stehen.
-> Und nein, es gibt keine Abkürzung " SetLocal EDE" oder ähnliches dafür, du musst es bis zur letzten Silbe ausschreiben AFAIK.

Grüße
Biber
[Edit] @bastla: Wenn ich gross bin, lern ich maschineschreiben.... oder mich kürzer zu fassen face-wink [/Edit]
kleinerbub
kleinerbub 07.07.2010 um 08:06:51 Uhr
Goto Top
Tach ihr beiden,

funktioniert einwandfrei! Danke.

Wieder was dazu gelernt.

Gruß, kleinerbub