Ich brauche Unterstützung beim Batch Script Debugging (if-Abfrage)?

Also:

Ich hab mich in den letzten Tagen viel mit HLS und FFmpeg beschäftigt. Nach unzähligen (erfolgreichen) Einzelversuchen habe ich angefangen, ein automatisiertes Batch-Skript zu schreiben. Dieses ist leider inzwischen sehr komplex geworden, aber ich habe zwischendurch immer Versuche gemacht. So weiß ich nun, in welchem Bereich der Fehler liegen muss.

Hier das Skript:

Der relevante Teil:

Sucht mit Strg + F die Stelle entering if 1, denn das ist das Letzte, was noch ausgegeben wird. Danach kommen nur noch Syntaxfehler.

Alles ab :converting funktioniert (den Teil hatte ich schon vorher und der funktioniert).

Das start-Kommando in der CMD war:

start.bat input.mp4 240 http://(hier meine url die ich aber als Fehlerquelle ausgeschlossen habe)

Es muss also an den if-Schleifen liegen. Doch ich erkenne da keinen Fehler und blöderweise habe ich von vorherigen Versionen keine Sicherung angefertigt.

@echo off
:start
.........

echo The Aspectratiofactor is %ar%
echo The new Resolution is %nw%x%nh%

:searching
::searching for Final Resolution
echo ===========================================
echo           Searching Part
echo ===========================================
call calc.exe Round(%nh%/2)*2 >./tmp/tmp.txt
set /p pnh=<./tmp/tmp.txt

call calc.exe Round(%nw%/2)*2 >./tmp/tmpw.txt
set /p pnw=<./tmp/tmpw.txt
echo pnw ist %pnw%
pnh ist %pnh%
echo nw ist %nw%       nh ist %nh%
echo entering if 1

if /i %pnh%==%nh% (
  echo PNH ist Gerade
  goto searching2
)
else (
  echo PNH Ungerade
  call calc.exe %nh%+1 >./tmp/nh.temp
  ::type nh.temp
)

:searching2
echo entering if 2
if /i %pnw%==%nw% (
  echo Pnw ist Gerade
  goto converting
)
else (
  echo Ungerade
  call calc.exe %nw%+1 >./tmp/nw.temp
  ::type nh.temp
)

set /p nw=<./tmp/nw.temp
set /p nh=<./tmp/nh.temp
echo NH ist %nh%
echo NW ist %nw%
set counter=%counter%+1
goto searching

:converting ........
...zum Beitrag

Da das Script leider schlecht eingebettet ist hier nochmal normal:

:searching

::searching for Final Resolution

   echo ===========================================

   echo          Searching Part

   echo ===========================================

   call calc.exe Round(%nh%/2)*2 >./tmp/tmp.txt

   set /p pnh=<./tmp/tmp.txt

   call calc.exe Round(%nw%/2)*2 >./tmp/tmpw.txt

   set /p pnw=<./tmp/tmpw.txt

   echo pnw ist %pnw%    pnh ist %pnh%

   echo nw ist %nw%      nh ist %nh%

   echo entering if 1

   if /i %pnh%==%nh% (

      echo PNH ist Gerade

      goto searching2

   ) else (

      echo PNH Ungerade

      call calc.exe %nh%+1 >./tmp/nh.temp

      ::type nh.temp

   )

:searching2

   echo entering if 2

   if /i %pnw%==%nw% (

      echo Pnw ist Gerade

      goto converting

   ) else (

      echo Ungerade

      call calc.exe %nw%+1 >./tmp/nw.temp

      ::type nh.temp

   )

set /p nw=<./tmp/nw.temp

set /p nh=<./tmp/nh.temp

echo NH ist %nh%

echo NW ist %nw%

set counter=%counter%+1

goto searching

:converting

...zur Antwort