2016-08-15 9 views
-1

私は、いくつかの整理に役立つバッチファイルを書いています。最初のページのif/else文で複数の構文エラーが発生しました。バッチIf/Else構文エラー

コード:

:Home 
cls 
title Home 
color 0a 



echo. 

echo -------------------- 
echo ^|     ^| 
echo ^| A) Mon, Wed, Fri ^| 
echo ^|     ^| 
echo ^|     ^| 
echo ^| B) Tue, Thur  ^| 
echo ^|     ^| 
echo ^|     ^| 
echo -------------------- 

set /p d = Please select a day set. 

IF %d%==A (
    goto Mon 
) 
IF %d%==a (
    goto Mon 
) 
IF %d% == B (
    goto Tue 
) 
IF %d% == b (
    goto Tue 
) ELSE (
    echo Invalid Input. Please try again 
    set /a sum = x+1 
    set x == sum 
    goto Home 
) 

:Mon 

私はに実行した問題右変数 'd' をcreatngした後です。私はエラーが発生しました "(この時点では予期しなかった。"私はそれを修正するために、大文字から小文字に移動し、if文の自分の条件を文と同じ行に移動し、かっこを削除しようとしました私はそれが単純な構文エラーであると仮定していますが、私のコードは、私がこの問題を自分で解決しようとしているすべてのコードと同じように見えます。ありがとうございました

答えて

1

これは古典的な "

コードをどのようにフォーマットしたかで、実際には%d %という変数が作成されています。その変数の値もPlease select a day set.に設定されています(スペースは非常に始まり)

等号の両側のスペースを取り除くと、あなたはうまくいくでしょう。

set /p d=Please select a day set. 
+0

ああ、それはとてもシンプルです。ありがとう、それは働いた。これは私がバッチを使用しない理由です。 – JimmyCode

+0

また、 'set x == sum'は間違っています、' set'は '=='記号オプションを持っていません。あなたは 'set x = sum'を' x'を 'sum 'に設定し、' x'を変数 'sum'に設定することを意味します:' set x =%sum% '。 –