@echo off
echo Program wykona działanie na twoich liczbach
set /p l1="Wpisz liczbę: "
set /p l2="Wpisz liczbę: "
set /p d1="Wybierz działanie: 1 - dodawanie, 2 - odejmowanie, 3 - mnożenie, 4 - dzielenie: "
if "%d1"=="1" goto plus
:plus
set d2=+
if "%d1"=="2" goto minus
:minus
set d2=-
if "%d1"=="3" goto razy
:razy
set d2=*
if "%d1"=="4" goto dziel
:dziel
set d2=/
echo Działanie: %l1%%d2%%l2%
pause
Problem jest przy wybieraniu działania. Obojętnie co wybiorę i tak będzie dzielenie. Co trzeba byłoby zrobić, aby działało to poprawnie?
No właśnie on zamiast przeskoczyć idzie po kolei… No to pomyślałem, aby dodać goto end:
@echo off
echo Program wykona działania na twoich liczbach
set /p l1="Wpisz liczbę: "
set /p l2="Wpisz liczbę: "
set /p d1="Wybierz działanie: 1 - dodawanie, 2 - odejmowanie, 3 - mnożenie, 4 - dzielenie: "
if "%d1"=="1" goto plus
:plus
set d2=+
goto end
if "%d1"=="2" goto minus
:minus
set d2=-
goto end
if "%d1"=="3" goto razy
:razy
set d2=*
goto end
if "%d1"=="4" goto dziel
:dziel
set d2=/
goto end
:end
echo Działanie: %l1%%d2%%l2%
pause
Problem polega na tym, że zmienne środowiskowe musisz umieścić pomiędzy dwoma znakami " %", a nie tylko poprzedzić jednym znakiem, jak to zrobiłeś przy okazji operacji porównania.
Po małych przeróbkach kod wygląda tak:
@echo off
echo Program wykona dzialania na twoich liczbach
set /p l1="Wpisz liczbe: "
set /p l2="Wpisz liczbe: "
set /p d1="Wybierz: 1 - dodawanie, 2 - odejmowanie, 3 - mnozenie, 4 - dzielenie: "
if "%d1%"=="1" goto plus
if "%d1%"=="2" goto minus
if "%d1%"=="3" goto razy
if "%d1%"=="4" goto dziel
:plus
set d2=+
goto end
:minus
set d2=-
goto end
:razy
set d2=*
goto end
:dziel
set d2=/
goto end
:end
set /a wynik=%l1%%d2%%l2%
echo Dzialanie: %l1%%d2%%l2%=%wynik%
pause