批量扫描单词短语(用户输入)

时间:2015-03-05 17:00:12

标签: batch-file

我正在尝试创建一个可以响应命令等的批处理文件(很像和AI),但是我遇到了一个问题。

这就是我所拥有的:

@echo off
set /p Quest="How are you today? "
echo %Quest% > Results.txt
for /f "tokens=1,2,3,4,5 delims= " %%a in (Results.txt) do (
if %%(something)==good do "My day is doing good as well."
)
pause

如何扫描Results.txt的内容?

例如:如果用户说:"我今天很好"或者只是"好。"由于他们的回复会被打印到Results.txt,我怎么能简单地扫描一下#34; good" (或任何其他描述性形容词)仅基于该单词(或任何其他描述性形容词)对用户作出回应?

1 个答案:

答案 0 :(得分:1)

就像Rojo建议的那样,没有必要使用文件,而FINDSTR命令就是您正在寻找的尝试。但是为了避免奇怪的结果,比如“不太好”被解释为“好”并且让你更好地控制所提供的答案,我建议使用正则表达式(参数/r)。像这样:

@echo off
set /p Quest="How are you today? "
echo %Quest% | findstr /r /i "not.*good not.*well" >nul && echo Sorry && goto:pause
echo %Quest% | findstr /i "good well" >nul && echo My day is doing good as well
:pause
pause

如果您真的想要使用文件,请尝试这种方式:

@echo off
set /p Quest="How are you today? "
echo %Quest% > Results.txt
findstr /r /i "not.*good not.*well" Results.txt >nul && echo Sorry && goto:pause
findstr /i "good well" Results.txt >nul && echo My day is doing good as well
:pause
pause