该文件完美运行。
您需要查找文本的命令行是
yourbatch yourtextfile.txt "I have breakfast"
如果你执行
yourbatch yourtextfile.txt I have breakfast
那么它会简单地搜索,I
因为 SPACE 是一个分隔符,并且为了搜索以空格分隔的字符串,您需要"
引用该字符串"
就此而言,如果您的文件名包含空格,则与文件名相同。
yourbatch "your text file.txt" "I have breakfast"
%%1 is "your text file.txt"
%%2 is "I have breakfast"
包括引号。
要删除引号,如果需要,可以使用 %~2
所以 - 你可以ECHO
ECHO with quotes:%2 and without: %~2
另外:小心
If %ERRORLEVEL% EQU 0 echo text %2 is Present
If %ERRORLEVEL% EQU 1 echo text %2 is not Present
ECHO
是少数几个不变的命令之一errorlevel
。许多人会改变它,例如,如果你要写
如果 %ERRORLEVEL% EQU 0 回显 Y|find "x" >nul 如果 %ERRORLEVEL% EQU 1 回显文本 %2 不存在
然后如果echo Y|find "x" >nul
因为errorlevel
上一步的值为 0 而找到了,那么因为echo Y|find "x" >nul
将 errorlevel 设置为 1,第二行也将被执行。