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 ........
Computer, programmieren, bat, Batch, Batch-Programmierung, cmd, Informatik, Script
3 Antworten
Mit Batch Schere, Stein, Papier programmiert, aber es funktioniert nicht?
:sspstart
cls
title ssp
color D
set /p sspstart= [1] Start / [2] Hauptmenu :
if %sspstart%== 1 goto ssp
if %sspstart%== 2 goto HM

:ssp
cls
title scher,stein,papier
color D
echo.
set /p sspname= Wie möchtest du gennannt werden ? :
echo.
echo ok, Hallo %sspname% Wähle ([1] Schere,[2] Stein,[3] Papier) ([4] Hauptmenu) :
echo.
echo --------------------------------------------------------------
echo.
set /p sspwahl= :
if %sspwahl%== 1 set /a sspwahl= Schere
if %sspwahl%== 2 set /a sspwahl= Papier
if %sspwahl%== 3 set /a sspwahl= Stein
if %sspwahl%== 4 goto HM
set /a sspgegner= %random% %% 3
if %sspgegner%== 0 set /a sspgegner= Schere
if %sspgegner%== 1 set /a sspgegner= Papier
if %sspgegner%== 2 set /a sspgegner= Stein
ping /n 2 LOCALHOST >nul
echo.
echo Der gegner hat %sspgegner% gewählt
echo.
if %sspwahl%== Schere if"%sspgegner% Schere goto sspune
if %sspwahl%== Stein if %sspgegner% Stein goto sspune
if %sspwahl%== Papier if %sspgegner% Papier goto sspune
if %sspgegner%== Schere if %sspwahl% Schere goto sspune
if %sspgegner%== Stein if %sspwahl% Stein goto sspune
if %sspgegner%== Papier if %sspwahl% Papier goto sspune
if %sspwahl%== Schere if %sspgegner% Papier goto sspgew
if %sspwahl%== Stein if %sspgegner% Schere goto sspgew
if %sspwahl%== Papier if %sspgegner% Stein goto sspgew
if %sspgegner%== Stein if %sspwahl% Schere goto sspver
if %sspgegner%== Papier if %sspwahl% Stein goto sspver
if %sspgegner%== Schere if %sspwahl% Papier goto sspver
ping /n 2 LOCALHOST >nul
goto sspungueltig
pause
goto sspungueltig

:sspgew
cls
color 02
title Looser
echo.
echo Glückwunsch du hast Gewonnen %sspname% !
echo.
set /p HMHMssp1= [1] Hauptmenü [2] Nochmal ! : Nr :
if %HMHMssp%== 1 goto HM
if %HMHMssp%== 2 goto ssp
goto sspgew

:sspver
cls
color 04
title Pro
echo.
echo Schade du hast verloren %sspname% :C !
echo.
set /p HMHMssp= [1] Hauptmenü [2] Nochmal ! : Nr :
if %HMHMssp%== 1 goto HM
if %HMHMssp%== 2 goto ssp
goto sspver

:sspune
cls
color 04
title Pro
echo.
echo Ohh... UNENTSCHIEDEN
echo.
set /p HMHMssp= [1] Hauptmenü [2] Nochmal ! : Nr :
if %HMHMssp%== 1 goto HM
if %HMHMssp%== 2 goto ssp
goto sspver

:sspungueltig
color 04
echo.
echo.
echo.
echo Ich glaube du hast was falsch eingegeben !
echo
TIMEOUT 4 >nul
goto ssp
Computer, Technik, Sprache, programmieren, bat, Batch, cmd, Technologie
2 Antworten
Wie kann ich ein Color-Menü mit Choice machen?

Hier der Problemteil:

echo              =%Efa1%= Schwarz     =%Efa1%=
echo              =%Efa2%= Grau        =%Efa2%=
echo              =%Efa3%= Hellgrau    =%Efa3%=
echo              =%Efa4%= Blau        =%Efa4%=
echo              =%Efa5%= Hellblau    =%Efa5%=
echo              =%Efa6%= Gruen       =%Efa6%=
echo              =%Efa7%= Hellgruen   =%Efa7%=
echo              =%Efa8%= Tuerkis     =%Efa8%=
echo              =%Efa9%= Helltuerkis =%Efa9%=
echo              =%Efa10%= Rot         =%Efa10%=
echo              =%Efa11%= Hellrot     =%Efa11%=
echo              =%Efa12%= Lila        =%Efa12%=
echo              =%Efa13%= Helllila    =%Efa13%=
echo              =%Efa14%= Gelb        =%Efa14%=
echo              =%Efa15%= Hellgelb    =%Efa15%=
echo              =%Efa16%= Weiss       =%Efa16%=
choice /n /c:WSD
if errorlevel 255 goto e-farben
if errorlevel 3 goto ehauswahl
if errorlevel 2 goto ehrunter
if errorlevel 1 goto ehhoch
if errorlevel 0 goto e-farben
:ehhoch
if "%Efa1%"=="X" set Efa1= &&set Efa16=X&&color f%Vfarbe%&&goto e-farben
if "%Efa2%"=="X" set Efa2= &&set Efa1=X&&color 0%Vfarbe%&&goto e-farben
if "%Efa3%"=="X" set Efa3= &&set Efa2=X&&color 8%Vfarbe%&&goto e-farben
if "%Efa4%"=="X" set Efa4= &&set Efa3=X&&color 7%Vfarbe%&&goto e-farben
if "%Efa5%"=="X" set Efa5= &&set Efa4=X&&color 1%Vfarbe%&&goto e-farben
if "%Efa6%"=="X" set Efa6= &&set Efa5=X&&color 9%Vfarbe%&&goto e-farben
if "%Efa7%"=="X" set Efa7= &&set Efa6=X&&color 2%Vfarbe%&&goto e-farben
if "%Efa8%"=="X" set Efa8= &&set Efa7=X&&color a%Vfarbe%&&goto e-farben
if "%Efa9%"=="X" set Efa9= &&set Efa8=X&&color 3%Vfarbe%&&goto e-farben
if "%Efa10%"=="X" set Efa10= &&set Efa9=X&&color b%Vfarbe%&&goto e-farben
if "%Efa11%"=="X" set Efa11= &&set Efa10=X&&color 4%Vfarbe%&&goto e-farben
if "%Efa12%"=="X" set Efa12= &&set Efa11=X&&color c%Vfarbe%&&goto e-farben
if "%Efa13%"=="X" set Efa13= &&set Efa12=X&&color 5%Vfarbe%&&goto e-farben
if "%Efa14%"=="X" set Efa14= &&set Efa13=X&&color d%Vfarbe%&&goto e-farben
if "%Efa15%"=="X" set Efa15= &&set Efa14=X&&color 6%Vfarbe%&&goto e-farben
if "%Efa16%"=="X" set Efa16= &&set Efa15=X&&color e%Vfarbe%&&goto e-farben
Windows, bat, Batch, Batch-Programmierung, cmd
1 Antwort
wie kann ich diese batch datei besser bzw anderes schreiben?

@echo off

color 02 

title jump

:start

cls

echo niemals S druecken 

echo.

echo _________________________________________________

echo.

echo.

echo.

echo.

echo ________0________________________________________

echo.

choice /c:wds /m "druecke W um zu springen und D um nachforne zu gehen:"

if %errorlevel%==1 goto jump

if %errorlevel%==2 goto forward

if %errorlevel%==3 goto gameover

pause

:forward

cls

echo.

echo.

echo _________________________________________________

echo.

echo.

echo.

echo.

echo _________0_______________________________________

echo.

choice /c:wa /m "druecke W um zu springen und A um nachforne zu gehen:"

if %errorlevel%==1 goto jumpp

if %errorlevel%==2 goto start 

:jump

cls

echo.

echo.

echo _________________________________________________

echo.

echo.

echo.

echo     0

echo _________________________________________________

echo.

goto time 

:time

ping localhost >nul

goto start 

:jumpp

cls

echo.

echo.

echo _________________________________________________

echo.

echo.

echo.

echo     0

echo _________________________________________________

echo.

ping localhost >nul

goto forward

:gameover

cls

echo.

echo.

echo _________________________________________________

echo.

echo.

echo.

echo.

echo ________0________________________________________

echo.

ping localhost >nul

cls

echo niemals S druecken 

echo.

echo _________________________________________________

echo.

echo.

echo.

echo     0 

echo ________ ________________________________________

echo.

ping localhost >nul

cls

echo niemals S druecken 

echo.

echo _________________________________________________

echo.

echo.

echo.

echo.      

echo ________0________________________________________

echo.

ping localhost >nul

cls

echo niemals S druecken 

echo.

echo _________________________________________________

echo.

echo.

echo.

echo      

echo ________ ________________________________________

echo.

ping localhost >nul 

cls

echo.

echo.

echo.

echo   ~GAMEOVER!~

ping localhost >nul

ping localhost >nul 

goto entscheidung

:entscheidung

echo willst du neu starten

choice /c:yn /m "y=ja n=nein:"

if %errorlevel%==1 goto start 

if %errorlevel%==2 exit 

danke für hilfreiche antworten :)

Games, Test, Technik, Programm, programmieren, Android, bat, Batch, Problemlösung
5 Antworten

Meistgelesene Fragen zum Thema Bat

Gehalt AOK nach Bat - wer ist Bat 5? 6? 7?

3 Antworten

Lustige CMD Commands?

8 Antworten

In Batch Datei Text anzeigen - Code

3 Antworten

Kopieren mit .Bat ohne Nachfrage beim überschreiben?

1 Antwort

Kann mir jemand Anleitungen für lustige Batch Dateien geben?

6 Antworten

Wie ist die Bezahlung, wenn man als Lehrer den Doktortitel hat?

6 Antworten

Wie kann ich Textdatei (*.txt) in eine *.bat - Datei umwandeln?

6 Antworten

Batch Datei programmieren um Verknüpfung auf Desktop zu erstellen

2 Antworten

.bat Datei in .jpg oder ähnlichem verstecken

4 Antworten

Bat - Neue und gute Antworten