Beispiele
beliebige Datei in ico verwandeln
convert2ico
@echo off Set irfan=B:\Software\_graphik\Irfan\i_view32.exe set file=%1 FOR /f "delims=" %%f IN (%file%) DO (%irfan% "%%f" /convert="%%~df%%~pf%%~nf.ico")
Bild um 180° drehen und unter selben Namen speichern, wie bisher
mit irfanView Dateien um 180* drehen
@echo off Set irfan=B:\Software\_graphik\Irfan\i_view32.exe set file=%1 FOR /f "delims=" %%f IN (%file%) DO %irfan% "%%f" /rotate_r /rotate_r /convert="%%f"
Anmerkung: Für jpg gibt es eine sehr einfache Alternative JPEGTRAN.EXE und eine Reihe anderer Programme, die lossless JPGs rotieren. [Zum technischen Hintergrund siehe hier]. Der Code einer solchen Batch-Datei würde folgendermaßen aussehen:
Bach jpg verlustfrei um 180° drehen
@echo off Set jpgtran=B:\Software\_graphik\JpgCrop\jpegtran.exe set file=%1 FOR /f "delims=" %%f IN (%file%) DO %jpgtran% -rotate 180 "%%f" "%%f"
Und als vbs-Script [Achtung: funktioniert unter dem 64bit Windows 7 derzeit nicht – ist aber ein bekannter Fehler]
rotate
(c) Erhard Rainer - www.erhard-rainer.com
' HISTORY:
' 0.1 - 28.03.2009 - Basisskript
' 0.2 - 28.12.2009 - kleine Fehlerbehebungen
' ---------------------------- CONFIGURATION ----------------------------
' ------------------------------ DECLARATION ------------------------------
Dim fso, objDatei, strLine, objFolder, bFolder, strGrad, oFile, Dateiname
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
' ---------------------------- USED FUNCTIONS ----------------------------
' ---------------------------- USED PROCEDURES ----------------------------
' ------------------------------- ARGUMENTS -------------------------------
'Standardwert für Drehung festlegen
strGrad = "180"
'einzelne übergebene Parameter auslesen
Set objArgs = WScript.Arguments
For Each objArg in objArgs
msgbox objArg
length = instr(objArg,":")
Select Case left(objArg,instr(objArg,":"))
Case LCase("/zielordner:")
strFolder = right(objArg,len(objArg)-length)
Case LCase("/dateiliste:")
strFile = right(objArg,len(objArg)-length)
Case LCase("/grad:")
strGrad = right(objArg,len(objArg)-length)
End Select
next
' -------------------------------- SCRIPT --------------------------------
'abschließendes "\" im Ordner prüfen
if right(strFolder,1) <> "\" then strFolder = strFolder & "\"
'Überprüfen, ob die Datei existiert
if Fso.fileexists(strfile) = False then
msgbox "2"
Call Fehlerbehandlung("File",strFile)
end if
' Prüfen, ob der Zielordner existiert
bFolder = True
if fso.folderexists(strfolder) = False then
bFolder = False
end if
' Datei mit den Dateinamen auslesen
Set objDatei = fso.OpenTextFile(strFile, ForReading)
Do until objDatei.AtEndOfStream 'Wiederhole, bis am Ende der Datei angelangt
strLine=objDatei.ReadLine
if Fso.fileexists(strLine) = True then
if bFolder = False then 'im Ausgangsordner die Datei überschreiben
call Drehen(strLine,strLine,strGrad)
else
'Dateinamen aus strLine extrahieren
Set oFile = fso.GetFile(strLine)
Dateiname = fso.GetFileName(oFile)
call Drehen(strLine,strFolder & Dateiname ,strGrad)
end if
else
WScript.Echo strLine & "(Datei nicht gefunden)"
end if
Loop
objDatei.Close
Set fso = nothing
Set oFile = nothing
Set objDatei = nothing
Set objFolder = nothing
WScript.Echo "Ordner erstellt"
' -------------------------------- ERRORS --------------------------------
Sub Fehlerbehandlung(strFehler,strtmp)
if strFehler = "File" then
WScript.Echo "Die Datei " & strtmp & " konnte nicht gefunden werden"
elseif strFehler = "Folder" then
WScript.Echo "Der Ordner " & strtmp & " konnte nicht gefunden werden"
end if
Wscript.Echo "usage: rotate.vbs /zielordner:<Folder> /dateiliste:<Datei> /Grad:[90|180|270 usw]"
wscript.Quit
End Sub
Sub Drehen(origImg,newImg,Grad)
Dim img, msgs
Set img = CreateObject("ImageMagickObject.MagickImage.1")
msgs = img.Convert(origImg, "-rotate", 180, newImg)
Set img = Nothing
end sub
Anmerkung: Falls es zum Runtim Error „0x800A01AD“ kommt regsvr32 <pfad>\ImageMagickObject.dll ausführen. Selbiges gilt, wenn beim SimpleTest.vbs (C:\Program Files\<Pfad>\ImageMagickObject\Tests\) Script der Fehler 424: Object required bzw. 424: Objekt erforderlich gemeldet wird. Sofern man ImageMagick unter VBA oder VBScript verwenden möchte, ist es sehr wichtig, dass „Install ImageMagickObject OLE Control for VBScript, Visual Basic, and WSH“ markiert ist. [Die äußerst kurze offizielle Einführung]

Links
- IrfanView – Command Line Options
- IrfanView – Convert Images on the Command Line
- IrfanView – [dos batch] Irfan view command line options
- ImageMagick Tutorial
- ImageMagick – Graphics from the command line
- ImageMagick – Franz Fiala – Batch-Bearbeitung von Bilddateien



