0
バッチプログラミングでは非常に新鮮ですが、私の問題を解決する答えが見つからないようです。 set /p
コマンドをバッチファイルに含めるたびに、文字間のスペースを含むものを入力すると即座にプログラムが閉じられます。 は、ここで問題のコードです:set/p入力にスペースを入れるとバッチプログラムが自動的にクラッシュする
set /p action=">>"
if not defined action goto nothing
if /i %action% equ fight goto fight
if /i %action% equ magic goto magic
if /i %action% equ heal goto heal
if /i %action% equ "do nothing" goto nothing
goto battscr
私は明らかに「何もしない」、入力に対する応答を作成しようとしているが、ユーザーの種類の文字の間にスペースたびに、すぐにEnterキーを押すと、それは閉じられます。 cmdを使用してバッチを実行すると、「この時点では何も予想外でした」というエラーが表示されます。空白の後の入力を参照する「何もない」。
答えはあなたの画面に表示されます:「この時点では何も予期しなかった」の後、「何もしないでください」と表示されます。これは許される構文 'if/i string1 equ string2 ...'に従うことに注意してください。 –
申し訳ありませんが、私はあなたの答えを理解していないようです。変数は%action%です。 'もし何もしないなら、goto fight fight'は、変数を等しい入力にしたいときは、「何もしない」が変数であるかのように振る舞います。また、バッチがcmdで実行され、 "この時点で何も予期しなかった"というエラーが表示された場合、即座にバットが閉じられ、C:ディレクトリにジャンプします。その後、バットに関しては何も起こりません。 – Jman0209
注意したように、構文は 'if/i string1 equ string2'です - ' equ'の前の文字列は1つだけですが、2つを入れています。パーサーは、 '/ i'の後の2番目の単語が' equ'と期待していますが、代わりに 'nothing'です。 –