Hopefully "ScriptingTipsAndTricks" helps you with your batch file or vbscript scripting :-)
[Bottom][Contents][Prev]: String Replacement - case sensitive substitution of  all or part of a string[Next]: SubString Operations - extract Left, Right, middle
\->Batch Files->StringContains() - look for some text within another text string

StringContains() [look for some text within another text string].cmd

This demonstrates a subroutie that you can use to determine whether or not one text string contains another. The comparison is case insensitive.

It uses String Replacement to work and to overcome the related Windows bug it attaches a "#" to the start, this should be safe as long as the string you are looking for will not begin with that character :-)

[anchor]

The Code for: "StringContains() [look for some text within another text string].cmd"

This is the example, a shortcut was installed to this code :

@echo off
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:: $Header:   C:/DBAREIS/Projects.PVCS/Win32/ScriptingTipsAndTricks/EXAMPLE[cmd].StringContains() [look for some text within another text string].cmd.pvcs   1.1   11 Jul 2014 19:31:02   USER "Dennis"  $
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

set  TEXT=This are a strinG of characters
set Look4=String

call :StringContains "ANSWER" "%TEXT%" "%Look4%"
echo CONTAINS IT: %ANSWER% (should be "Y")

echo.
call :StringContains "ANSWER" "%TEXT%" "NO SUCH"
echo CONTAINS IT: %ANSWER% (should be "N")

goto :EOF


::+++++++++++++++++++
:StringContains
::  P1 = The name of the environment variable to hold the answer ("Y" or "N")
::  P2 = The text to search
::  P3 = The text we are looking for
::  NEEDS: ENABLEDELAYEDEXPANSION
::+++++++++++++++++++
    set VALB=#%~2
    set VALA=!VALB:%~3=[MkDiff]!
    set %~1=N
    if not "%VALA%" == "%VALB%" set %~1=Y

Please note that that I am not trying to show how great I am by producing batch files 9,000 characters long on one line that no one will understand or be able to debug when they go wrong. I am going out of my way to comment the code and make it verbose so beginners and advanced users will both benefit. I don't claim to be an expert that knows everything, if I'm wrong or make a mistake then please contact me and let me know :-)


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: String Replacement - case sensitive substitution of  all or part of a string[Next]: SubString Operations - extract Left, Right, middle


ScriptingTipsAndTricks© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Sunday September 07 2014 at 12:50pm
Visit ScriptingTipsAndTricks's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.