我正在尝试创建一个可以响应命令等的批处理文件(很像和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" (或任何其他描述性形容词)仅基于该单词(或任何其他描述性形容词)对用户作出回应?
答案 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