2013-07-11 27 views

Trả lời

17

tôi đã giải quyết này với những điều sau

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 

Tôi có ý tưởng cơ bản từ câu trả lời sau đây nhưng nó không được tìm kiếm bởi một biến vì vậy nó không hoàn toàn là những gì tôi đang tìm kiếm.

Batch file: Find if substring is in string (not in a file)

4

cách khác:

echo/%variable1%|find "%variable2%" >nul 
if %errorlevel% == 0 (echo yes) else (echo no) 

các / ngăn chặn đầu ra của Echo is ON hoặc Echo is OFF trong trường hợp %variable1% trống.

+0

này không cho variable1 = '/'? , variable1 = 'on' và variable1 =' off'. Hãy xem xét 'echo foobar% variable1% | tìm thấy"% variable2% "> nul', thất bại cho biến2 = foobar. – GKFX

1

Câu trả lời của Gary Brunton không phù hợp với tôi.

Nếu bạn thử với set variable1="C:\Users\My Name\", bạn sẽ kết thúc với một lỗi:

'Name\""' is not recognized as an internal or external command 

Thích ứng với câu trả lời này Find out whether an environment variable contains a substring, tôi đã kết thúc với:

echo.%variable1%|findstr /C:"%variable2%" >nul 2>&1 
if not errorlevel 1 (
    echo Found 
) else (
    echo Not found 
) 
Các vấn đề liên quan