我正试图创建一个可以响应命令等(很像和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
中,我怎么能简单地只扫描"好"(或任何其他描述性形容词)一词,并根据这一词(或任何其他描述性形容词")对用户做出回应?
就像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