在Windows批处理文件中,我有一个字符串'abcdefg'。我想检查字符串中是否有'bcd',但我也希望每个都在变量中,或传入字符串的参数。
此解决方案接近,但使用常量而不是变量。 Batch file: Find if substring is in string (not in a file)
答案 0 :(得分:8)
尝试一下:
set "var=abcdefg"
set "search=bcd"
CALL set "test=%%var:%search%=%%"
if "%test%"=="%var%" (echo %search% is not in %var%) else echo %search% in %var% found
set "var=abcdefg"
set "search=bcd"
echo %var%|findstr /lic:"%search%" >nul && echo %search% found || echo %search% not found
答案 1 :(得分:3)
解决方案是使用FindStr
和NULL重定向>nul
。
SET var=%1
SET searchVal=Tomcat
SET var|FINDSTR /b "var="|FINDSTR /i %searchVal% >nul
IF ERRORLEVEL 1 (echo It does't contain Tomcat) ELSE (echo It contains Tomcat)
另存为test.bat
并使用要搜索的参数执行,如下所示:test Tomcat7
C:\>test Tomcat9
It contains Tomcat