draft003
Goto Top

Panorama Automatisch zusammensetzen

Hallo an alle Batch Profis da draußen.

Ich kämpfe nun schon seit ein paar Tage und habe trotz einiger sehr hilfreichen Tutorials es noch nicht geschaft meiner Lösung näher zu kommen... Deshalb bräuhte ich ein wenig Rat der Profis face-smile

Meine Aufgabenstellung:

ich habe ein Ordner in dem Bilder im Hochformat abgelegt sind (IMG_2021..._01, IMG_2021...02,...). Davon würde ich gerne per Komandozeile immer Zwei Bilder nehemen und an Irfanview übergeben und nebeneinander Platzieren lassen. Das ganze sollte dann als Datei gespeichert werden.

Was schon funktioniert:

Ich habe einzelen Teile schon mal getestet und diese Funktionieren auch wie gewünscht.
Das Übergeben von 2 (fixen) Datein an Irfvanview klappt schon sehr gut

echo off

Set PFAD=C:\Users\...\
Set Datei1=IMG_2021...01.jpg
Set Datei2=IMG_2021...01.jpg

"C:\Program Files\IrfanView\i_view64.exe" /panorama=(1,%PFAD%%Datei1%,%PFAD%%Datei2%)/convert=%Datei1%+%Datei2%  
pause

Auch das erzeugen einer Text Datei in der alle meine Dateine stehen funktioniert

echo off

Set PFAD=C:\Users\...\

dir /b /a-d %Pfad% >inhalt.txt

Diese Textdatei einzulesen und in Variablen zu schreiben funktioniert auch

@echo off
setlocal enabledelayedexpansion

Set Inhalt=C:\Users\...\Inhalt.txt
Set Pfad=C:\Users\...\
set "N=0"  

REM Dateiname der Variablen (Datei[0-N])zuweisen
FOR /F "delims=" %%i in (%Inhalt%) do (  
echo %%i
set /a "N+=1"  
set "Datei_!N!=%%i"  
)

Was jedoch nich nicht geht ist die Übergabe von immer Zwei Datein an Irfanview...
Dazu habe ich eigentlich eine for /L Schleife gebastelt.
Das ganze Program sieht dann wie folgt aus:

@echo off
setlocal enabledelayedexpansion

Set Inhalt=C:\Users\...\Inhalt.txt
Set Pfad=C:\Users\...\
set "N=0"  

REM Dateiname der Variablen (Datei[0-N])zuweisen
FOR /F "delims=" %%i in (%Inhalt%) do (  
echo %%i
set /a "N+=1"  
set "Datei_!N!=%%i"  
)

Echo %Datei_1%
Echo %Datei_10%
pause

REM  Anzahl der Datein in Inhalt Errechnen (N) und die aufgerundete Hälfte berechnen (H)
Echo %N%
set /a H = N/2 + N %% 2
Echo %H%


pause
REM Auswahl der entsprechenden Datein und weitergeben an die Variable Bild 1 und Bild 2. Danach übergabe an Irfanview
for /L %%L in (1 1 %H%) do (
REM echo %%L
	set "B=%%L"  
	set /a "B=B*2"  
REM echo !B!
	set "Bild2=[!%Datei%%B%!]"  
REM Echo !Bild2!
	set /a "A=B-1"  
REM echo !A!
	set "Bild1=[!%Datei%%A%!]"  
REM Echo !Bild1!

REM	"C:\Program Files\IrfanView\i_view64.exe" /panorama=(1,%PFAD%!Bild1!,%PFAD%!Bild2!)/convert=!Bild1!+!Bild2!  

)
pause

Mein Problem ist hier die Letzte for/L Schleife. Denn hier wird bei die Variable Bild1 und Bild2 nicht rihtig erzeugt.
Aktiviere ich die Auskommentierte Kontrollausgabe so erhalte ich für echo%%L den erwarteten wert, für echo !B! und echo !A! ebenfalls
für echo !Bild1! und echo !Bild2! erhalte ich jedoch nur [ ].

Könnte mir hier jemand auf die Sprüge helfen wo mein Fehler liegt?

Vielen Dank

Content-Key: 666679

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

Printed on: April 25, 2024 at 17:04 o'clock