假设以下批处理文件
set variable1=this is variable1
set variable2=is
set variable3=test
if variable1 contains variable2 (
echo YES
) else (
echo NO
)
if variable1 contains variable3 (
echo YES
) else (
echo NO
)
我希望输出是 YES,然后是 NO
假设以下批处理文件
set variable1=this is variable1
set variable2=is
set variable3=test
if variable1 contains variable2 (
echo YES
) else (
echo NO
)
if variable1 contains variable3 (
echo YES
) else (
echo NO
)
我希望输出是 YES,然后是 NO
我已经用以下方法解决了这个问题
setLocal EnableDelayedExpansion
set variable1=this is variable1
set variable2=is
set variable3=test
if not "x!variable1:%variable2%=!"=="x%variable1%" (
echo YES
) else (
echo NO
)
if not "x!variable1:%variable3%=!"=="x%variable1%" (
echo YES
) else (
echo NO
)
endlocal
我从以下答案中得到了基本想法,但它不是通过变量搜索,所以它不完全是我想要的。
另一种方式:
echo/%variable1%|find "%variable2%" >nul
if %errorlevel% == 0 (echo yes) else (echo no)
防止/
输出Echo is ON
或Echo is OFF
万一%variable1%
为空。
加里·布伦顿的回答对我不起作用。
如果您尝试使用set variable1="C:\Users\My Name\"
,最终会出现错误:
'Name\""' is not recognized as an internal or external command
调整这个答案找出环境变量是否包含子字符串,我最终得到:
echo.%variable1%|findstr /C:"%variable2%" >nul 2>&1
if not errorlevel 1 (
echo Found
) else (
echo Not found
)