wie kann ich das if und else problem in batch beheben?

hallo, ich bin dabei in Batch einen "Taschenrechner" zu programmieren mit den simplen Funtionen (Addition, Subtraktion, Multiplikation, Division). Dafür brauche ich allerdings IF und ELSE. Ich habe schon vieles probiert, aber finde den Fehler in meinem Script nicht, warum "IF" nicht funktioniert..

danke schonmal im voraus, lg L

mein Script:

@echo off

echo a Addition      c Multiplikation

echo b Subtraktion   d Division

set/a a=a

set/a b=b

set/a c=c

set/a d=d

set /P eingabe="Rechenoperation: "

IF %eingabe% EQU %a% goto a Addition ELSE if %eingabe% EQU %b% goto b Subtraktion ELSE if %eingabe% EQU %c% goto c Multiplikation ELSE if %eingabe% EQU %d% goto d Division

:a Addition

echo Addition:

set /P summand1="Summand 1: "

set /P summand2="Summand 2: "

set/a ergebnis1=%summand1% + %summand2%

echo Summe: %ergebnis1%

goto ende

:b Subtraktion

echo Subtraktion:

set /P minuend="Minuend: "

set /P subtrahend="Subtrahend: "

set/a ergebnis2=%minuend% - %subtrahend%

echo Differenz: %ergebnis2%

goto ende

:c Multiplikation

echo Multiplikation:

set /P faktor1="Faktor 1: "

set /P faktor2="Faktor 2: "

set/a ergebnis3=%faktor1% * %faktor2%

echo Produkt: %ergebnis3%

goto ende

:d Division

echo Division:

set /P dividend="Dividend: "

set /P divisor="Divisor: "

set/a ergebnis4=%dividend% / %divisor%

echo Quotient: %ergebnis4%

:ende

pause>NUL

Computer, Windows, Technik, Programmierung, Batch, Batch-Dateien, Batch-Programmierung, Script, Technologie
4 Antworten
Warum funktioniert dieses Batch-Game nicht?

Hallo liebe Community!

Ich bräuchte hilfe, bei meinem Batch Spiel. Hier mal der Code

@echo off
rem TILESETS:
:: ═ ║ ╔ ╗ ╚ ╝ ╠ ╣ ╦ ╩ ╬
::
::
::

mode 1000
chcp 65001 >nul
title Test
color 0f
::COLOR SETUP::
set ESC=
set Black=%ESC%[30m
set Red=%ESC%[31m
set Green=%ESC%[32m
set Yellow=%ESC%[33m
set Blue=%ESC%[34m
set Magenta=%ESC%[35m
set Cyan=%ESC%[36m
set White=%ESC%[37m
set B_Black=%ESC%[90m
set B_Red=%ESC%[91m
set B_Green=%ESC%[92m
set B_Yellow=%ESC%[93m
set B_Blue=%ESC%[94m
set B_Magenta=%ESC%[95m
set B_Cyan=%ESC%[96m
set B_White=%ESC%[97m
set "clrp=0 █"
set ypos_1=9
set xpos_1=23
set "SPR=1 @"
:MAP_FOREST_0x1
echo %B_Green%╔══════╦══════════════════╗
echo %B_Green%║      ║                  ║
echo %B_Green%║      ║                  ║
echo %B_Green%╠═══ ══╝                  ║
echo %B_Green%║                         ║
echo %B_Green%║                         ║
echo %B_Green%║                         ║
echo %B_Green%║                 %B_Yellow%#%B_Green%       ║
echo %B_Green%╠══─═══╗                  ║
echo %B_Green%║      ║                  ║
echo %B_Green%║      ║                  ║
echo %B_Green%╚══════╩══════════════════╝
:display
set oldxpos=%xpos_1%
set oldypos=%ypos_1%
BG.exe Sprite %ypos_1% %xpos_1% %SPR%
choice /c wasd /n >nul
if %errorlevel%==1 goto up
if %errorlevel%==2 goto left
if %errorlevel%==3 goto down
if %errorlevel%==4 goto right
:up
set /a "ypos_1=%ypos_1%-1"
goto clean
:left
set /a "xpos_1=%xpos_1%-1"
goto clean

:down
set /a "ypos_1=%ypos_1%+1"
goto clean

:right
set /a "xpos_1=%xpos_1%+1"
goto clean
:clean
BG.exe Sprite %oldxpos% %oldypos% %clrp%
goto display

Der vorletzte Befehl funktioniert nicht. Die letzte Position der Sprite soll mit einem Schwarzen vollem Block "█" bedeckt werden. Aber es tut sich nichts. Stattdessen, bleibt die letzte Position der Sprite liegen.

Bitte um hilfe, danke!

Batch-Programmierung, Spiele und Gaming
1 Antwort

Was möchtest Du wissen?