Batch file 批量扫描单词短语(用户输入)
我试图创建一个批处理文件,可以响应命令等(很像和AI),但我有一个零件的问题 以下是我所拥有的:Batch file 批量扫描单词短语(用户输入),batch-file,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
@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建议的那样,不需要使用文件和命令,这是您正在寻找的,也是您尝试执行的。但为了避免奇怪的结果,比如“不是很好”被解释为“很好”,并让您更好地控制提供的答案,我建议使用正则表达式(parameter/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
你可能会发现。基本上,不用回显Results.txt,而是使用
findstr
或子字符串替换来测试%Quest%
是否存在好的、好的、优秀的、好的、不坏的等等。在这种情况下,findstr
可能更可取,因为您可以在一个命令中组合多个同义词<代码>echo(%Quest%| findstr/i“good-great-fine-excellel”>NUL&&(echo我的日子也过得很好。)| |(echo啊,听到这个消息我很难过。)很抱歉打扰您,字符串工作得很好,但我不明白不好的地方是什么。*好的和不好的地方是什么。*好的
你能帮我解释一下它们做什么或执行什么吗。谢谢不好。*好的
意味着回答像不太好
,我感觉不好
排序。
是任何字符的通配符,*
用于重复前面的字符或类的零次或多次出现…请参见使用正则表达式和findstr