批处理文件如何从用户输入搜索关键字?

时间:2016-02-06 20:34:15

标签: batch-file

有没有办法可以让我的程序在用户输入中搜索关键字? 例如,如果我输入"你好,你是谁?"它会告诉我说你好,并说你好。

3 个答案:

答案 0 :(得分:1)

更灵活的方式(搜索多个单词(synonymes)的可能性) - 这里是“Hello”,“Hallo”和“Hi”(但不是“ Hallo ween”或“C NA“):

set input=Hello, it's me
echo %input% |findstr /i "\<h[ae]llo\> \<hi\>" >nul && echo Hello back
set input=Hallo, it's me
echo %input% |findstr /i "\<h[ae]llo\> \<hi\>" >nul && echo Hello back
set input=Hi, it's me
echo %input% |findstr /i "\<h[ae]llo\> \<hi\>" >nul && echo Hello back
set input=it's Halloween
echo %input% |findstr /i "\<h[ae]llo\> \<hi\>" >nul && echo Hello back

最后一行没有输出,因为它只搜索整个单词。

请参阅findstr /?以获取解释。

&&的作用是“如果以前的命令(findstr)成功那么”(对面就是||

答案 1 :(得分:0)

试试这个:

@echo off
set /p "str=say something containing the word Hello "
if not "x%str:hello=%"=="x%str%" echo Hello, how may I help you?
pause

答案 2 :(得分:0)

更明确的方式:

@echo off
set input=
set /p input="Type some text : "
if "%input%"=="" (
   echo You didn't type anything!
) else (
   for  %%a in (%input%) do (
      if /i "%%a"=="Hello" (
         echo Hello!
      ) 
   )

)