0

非常に単純なタスクを実行するネストされた if ステートメントを作成しました。以下にコードを示します。

@ECHO OFF
SET ANS=%1
IF "%ANS%"=="" ( ECHO You Entered Nothing
  )
  IF /i %ANS%==Y ( ECHO You entered Yes
    )
    IF /i %ANS%==N ( ECHO You entered NO
      )
      IF %ANS%==? ( ECHO I am confused
        )

私の問題は、"%ANS%"=="" のときに、提供したメッセージをエコーし​​た後に "( は現時点では予想外でした" というメッセージが表示されることです。他のすべては計画どおりに機能しますが、なぜこのメッセージが表示されるのかわかりません。

4

3 に答える 3

1

これには、spacesおよびduoble quotesおよび&文字から保護する要素があります。

@ECHO OFF
SET "ANS=%~1"
IF "%ANS%"==""     ( ECHO You Entered Nothing  )
IF /i "%ANS%"=="Y" ( ECHO You entered Yes      )
IF /i "%ANS%"=="N" ( ECHO You entered NO       )
IF "%ANS%"=="?"    ( ECHO I am confused        )
于 2014-03-20T12:49:00.010 に答える