In a batch file, I have a string abcdefg. I want to check if bcd is in the string.
Unfortunately it seems all of the solutions I'm finding search a file for a substring, not a string for a substring.
Is there an easy solution for this?
In a batch file, I have a string abcdefg. I want to check if bcd is in the string.
Unfortunately it seems all of the solutions I'm finding search a file for a substring, not a string for a substring.
Is there an easy solution for this?
To find a text in the Var, Example:
var_text="demo string test"
Echo.%var_text% | findstr /C:"test">nul && (
echo "found test"
) || Echo.%var_text% | findstr /C:"String">nul && (
echo "found String with S uppercase letter"
) || (
echo "Not Found "
)
LEGEND:
& Execute_that AND execute_this|| Ex: Execute_that IF_FAIL execute this&& Ex: Execute_that IF_SUCCESSFUL execute this>nul no echo result of command/C: Use string as a literal search stringI'm probably coming a bit too late with this answer, but the accepted answer only works for checking whether a "hard-coded string" is a part of the search string.
For dynamic search, you would have to do this:
SET searchString=abcd1234
SET key=cd123
CALL SET keyRemoved=%%searchString:%key%=%%
IF NOT "x%keyRemoved%"=="x%searchString%" (
ECHO Contains.
)
Note: You can take the two variables as arguments.
Better answer was here:
set "i=hello " world"
set i|find """" >nul && echo contains || echo not_contains
The solutions that search a file for a substring can also search a string, eg. find or findstr.
In your case, the easy solution would be to pipe a string into the command instead of supplying a filename eg.
case-sensitive string:
echo "abcdefg" | find "bcd"
ignore case of string:
echo "abcdefg" | find /I "bcd"
IF no match found, you will get a blank line response on CMD and %ERRORLEVEL% set to 1
Built on @user839791's answer, but I've added a few more things.
@echo off
rem --Set variable below--
set var=condition
rem --Uncomment below line to display contents of variable--
::echo The variable is %var%
rem --Change condition to desired string below--
ECHO.%var%| FIND /I "condition">Nul && (
rem --Occurs if the string is found--
Echo.Variable is "condition"
color C
pause
) || (
rem --Occurs if the string isn't found--
Echo.Variable is not "condition"
color A
pause
)
Best approach for me would be this:
call :findInString "HelloWorld" "World"
:findInString
ECHO.%1 | FIND /I %2>Nul && (
Echo.Found
) || (
Echo.Not found
)
Yes, We can find the subString in the String:
echo.%data% | FINDSTR /I "POS">Nul && (SET var=POS) || (SET noVar="variable not found")
echo.%data% | FINDSTR /I "TD1">Nul && (SET var=TD1) || (SET noVar="variable not found")
GOTO %var%
:POS
echo processes inside POS
GOTO END
:TD1
echo processes inside TD1
:END