2016-10-11 1 views
0

現在、私はチャットボットを作成していますが、1単語の質問や単語を作成したい場合はすべてうまく行きます。たとえば、次のようにバッチ内の複数の単語の回答

set /p chat=You: 
if %chat%==hello echo User: Hello! 

しかし、私はしようとした場合:

if %chat%==who are you? echo User: My name is Stacy. 

.batファイルがクラッシュしました。私はこのコーディング言語にはとても新しいので、私が間違ってやっていることとそれを修正する方法についての説明を得ることができますか?なぜなら、私は実際にこれまでのところ本当に良く見えるCMDプロンプトゲームを実際に作っているから、このボットは不可欠です。

+1

「%chat%」==「あなたは誰ですか?」「それより優れていれば、もしあれば」「%/チャット%」==「あなたは誰ですか?」「大文字小文字を区別しない比較です。バッチファイルは "クラッシュ"しません。構文エラーを返します。ダブルクリックすると表示されません。 – aschipfl

+0

ありがとうございました!だから、どうすればウィンドウを即座に閉じるのではなく、エラーを教えてくれるのでしょうか? –

+0

コマンドプロンプトを開き、スクリプトをダブルクリックする代わりに名前を入力してスクリプトを実行します。 – SomethingDark

答えて

0

(上記のあなたのコメントに基づいて回答)

aschipflは右のそれを持っていました。

%chat%が引用されていないインスタンスがあるため、問題の原因となったif /i who are you==hello ...を実行しているかのようです。それはオペレータが誰の後に来るのを期待していたが、それはareを得た。

このテンプレートに従ってください:if /i "%chat%"=="blah blah" echo ...

例:

@echo off 
echo CLIENT CONNECTED. Say Hello. 
:ChatBot 
set /p chat=You: 
if /i "%chat%"=="hello" echo User: Hello.. Anything you need while I can talk? These chats are on a timer. 
if /i "%chat%"=="who are you?" echo User: My name is stacy. Im a Help assistant here at USFIB. 
if /i "%chat%"=="exit" goto :eof 
goto ChatBot 

をまた、私はあなたのgotoラベルの上に接続されたクライアントを置きます。

関連する問題