Как мне остановить командный файл от выполнения команд, когда я использую оператор set? - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь создать чат-бота.

Это мой сценарий:

:start
set /p message=
if %message%==Hello echo Hi!
goto start

Но если я пытаюсь что-то напечатать как ... hello = world, он закрывается.Как мне это предотвратить?

Ответы [ 3 ]

0 голосов
/ 12 мая 2018

Если вы хотите проверить, начинается ли сообщение с hello, тогда проверьте %message:~0,5%

@echo off
:start
cls
set /p "message=type something: "
if /i "%message:~0,5%"=="Hello" echo Hi!
goto start

Так, набрав hello world, он обнаружит символы 0 - 5, являющиеся hello, /i делает его нечувствительным к регистру, как упомянуто @ magoo

0 голосов
/ 12 мая 2018

Magoo ответил на ваш вопрос уже кратко, это всего лишь пример, показывающий способ определения, содержит ли входная строка строку, нечувствительную к регистру hello:

If /I Not "%message%"=="%message:hello=%" Echo Hi!
0 голосов
/ 12 мая 2018
if /i "%message%"=="Hello world" echo Hi!

Цитировать обе стороны оператора сравнения.Обратите внимание, что /i делает тест нечувствительным к регистру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...