最近、私はバッチファイルの学習を始めました。今日、私はバッチファイルを試してみることにしました。私はいくつかのエラーがあり、コードに何が間違っているのか分からない。 HERESにコード:バッチファイルコードとの混乱
@echo off
title Batch Rpg
color 07
echo Welcome to Batch Rpg!
echo.
echo.
pause
:menu
cls
echo.
echo -Menu-
echo.
echo.
echo.
echo 1) Begin
echo.
echo 2) How to play
echo.
echo 3) Exit
echo.
echo.
echo.
echo ---------
echo.
set /p c=Choice:
if %c%==1 goto prestart1
if %c%==2 goto howtoplay
if %c%==3 goto cfr_exit
if NOT %c%==1 if NOT %c%==2 if NOT %c%==3 goto menu
:cfr_exit
cls
echo.
echo Are you sure you want to exit?
echo.
set /p c=(Y/N):
if %c%=="Y" exit
if %c%=="N" goto menu
if NOT %c%=="Y" if NOT %c%=="N" goto cfr_exit2
:cfr_exit2
cls
echo.
echo You must enter a valid option.
echo.
pause
goto cfr_exit
:howtoplay
cls
echo.
echo -How to play-
echo.
echo.
echo.
echo This game is very simple. There will be a number with an option after it, type the option in and it will perform an action(As the option would say).
echo.
pause
goto menu
:prestart1
cls
echo.
echo Welcome to land of Fageryth!
echo.
echo What is your name, adventurer?
echo.
set /p playername=Name:
goto prestart2
:prestart2
cls
echo.
echo What would be your more valued statistic, Attack damage, or Hit points?
echo.
echo.
echo.
echo 1)Attack damage(Atk)
echo.
echo 2)Hit points(Hp)
echo.
echo.
echo.
echo ---------
echo.
set /p playermorevaluedstat=Choice:
if %playermorevaluedstat%==1
set playeratk=6
set playerhp=25
if %playermorevaluedstat%==2
set playeratk=4
set playerhp=30
if NOT %playermorevaluedstat%==1 if NOT %playermorevaluedstat%==2 goto prestart2
cls
echo playeratk
echo playerhp
pause
私は私のコードの:prestart2
セクションとのトラブルを抱えています。最後に、変数がオプションである1または2に等しくなければ、セクションの開始までプレーヤーを戻し、終了したら私はそれが2つの変数playeratk
とplayerhp
を表示するようにしようとしていますが、代わりにそれは閉じます。私はここで本当に失われており、助けに感謝します!
なぜこのような複雑なロジックですか? "%playermorevaluedstat%" == "1"(他のものを実行する)ならば、他のものを実行するために、 '%' playermorevaluedstat% "==" 2 " '他の何かをする)'; '%playermorevaluedstat%'が空の場合のトラブルを避けるために、比較式の前後に '' "を書きます。 'if /' elseの句の正確な構文を見つけるために 'if /?'のヘルプテキストを読んでください... – aschipfl