2014-02-09 3 views
0

Что я ищу - это строка командного файла кода, которая будет проверять, что пользователь вводит для поиска ключевых слов и направляет их в нужном месте. Таким образом, когда у стажера возникает вопрос, он может просто спросить командный файл, и он направит их в соответствующее меню. Это возможно? если да, то как это сделать?Как найти ключевые слова пользователей, вводимых в командной строке?

:menu 
set /p c=Please type you question: 
findstr /m "How to ringout a product on our system?" "%c%" 
if %c%=="ringout" (
    goto :Ringingout 
    ) Else (
     goto :Sorry 
     ) 

:Ringingout 
cls 
echo In order to right something out maksure you do the following: 
echo - Log in 
echo - click on scan in the bottom left had corner on the tender page 
echo - scan items 
echo - click continue 
Pause 
goto :Menu 

:Sorry 
cls 
echo Sorry I don't recognize your question, please re-word it. 
pause 
goto :Menu 

ответ

0
@ECHO OFF 
SETLOCAL 

SET "keywords=word anotherword someword" 
FOR %%k IN (%keywords%) DO set "#%%k=" 

SET /p query="Please enter your query ? " 
FOR %%k IN (%keywords%) DO CALL :analyse %%k 

SET # 

GOTO :EOF 

:analyse 
CALL SET "found=%%query:%1=%%" 
IF "%found%"=="%query%" GOTO :EOF 
SET #%1=FOUND! 
GOTO :eof 

Вот общий способ сделать это.

Если введено одно из ключевых слов, переменная #keyword будет установлена ​​в FOUND!, поэтому вы можете использовать if defined #keyword для обработки оттуда.

Это не защищен от деструктивных пользовательских входов - это не то, что этот вопрос о ...

+0

Как я уже сказал, 'если определено #word goto whatforword' – Magoo

0

Вы бы лучше собрать все вопросы в документе (например, .html) и позволяя пользователю искать этот документ для того, что им нужно. Но если это просто упражнение, вы можете переписать свою логику, как так, чтобы сделать вашу работу программы:

:menu 
set "c=" 
set /p "c=Please type your question: " 

echo %c% | findstr /i /b "ringout" >nul 
if errorlevel 1 goto Sorry else goto Ringingout 

:Ringingout 

и так далее.

Смежные вопросы