2013-07-11 16 views

Antwort

17

gefolgt werden ich dies mit den folgenden

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 

Ich habe die Grundidee gelöst haben von der folgenden Antwort, aber es wurde nicht nach einer Variablen gesucht, so war es nicht vollständig, was ich suchte.

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

4

Ein anderer Weg:

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

die / verhindert Ausgang Echo is ON oder Echo is OFF bei %variable1% leer ist.

+0

Diese für variable1 versagt = '/'? , Variable1 = "Ein", und Variable1 = "Aus". Betrachte 'echo foobar% variable1% | finde"% variable2% "> nul', was für variable2 = foobar fehlschlägt. – GKFX

1

Gary Bruntons Antwort funktionierte nicht für mich.

Wenn Sie mit set variable1="C:\Users\My Name\" versuchen, werden Sie mit einem Fehler am Ende:

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

Anpassung diese Antwort Find out whether an environment variable contains a substring, landete ich mit:

echo.%variable1%|findstr /C:"%variable2%" >nul 2>&1 
if not errorlevel 1 (
    echo Found 
) else (
    echo Not found 
) 
Verwandte Themen