-1

Let's say a variable has the value 'hello world'.

I want to make it so it doesn't matter what else is in the variable: if it has a certain word, hello for example, it does a certain command.

If it doesn't have the word hello it does a different command.

indiv
  • 16,628
  • 6
  • 58
  • 82
Billy
  • 27
  • 1
  • 3
  • 1
    Read an example _Boolean Test "does string exist ?"_ at http://ss64.com/nt/syntax-replace.html – JosefZ May 08 '15 at 23:08

1 Answers1

1
echo %path% | findstr /i /c:"hello" && Echo Success || Echo Failure

From MSDos 6.22 Help file.

FIND exit codes

The following list shows each exit code and a brief description of its meaning:

0 The search was completed successfully and at least one match was found.

1 The search was completed successfully, but no matches were found.

2 The search was not completed successfully. In this case, an error occurred during the search, and FIND cannot report whether any matches were found.

You can use the ERRORLEVEL parameter on the command line in a batch program to process exit codes returned by FIND.

And about CMD's special characters.

&    seperates commands on a line.

&&    executes this command only if previous command's errorlevel is 0.

||    (not used above) executes this command only if previous command's errorlevel is NOT 0

>    output to a file

>>    append output to a file

<    input from a file

|    output of one command into the input of another command

^    escapes any of the above, including itself, if needed to be passed to a program

"    parameters with spaces must be enclosed in quotes

+ used with copy to concatinate files. E.G. copy file1+file2 newfile

, used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,,

%variablename% a inbuilt or user set environmental variable

!variablename! a user set environmental variable expanded at execution time, turned with SelLocal EnableDelayedExpansion command

%<number> (%1) the nth command line parameter passed to a batch file. %0 is the batchfile's name.

%* (%*) the entire command line.

%<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file.
Trigger
  • 145
  • 3
  • If you don't want findstr to print the string it found to the screen when it actually finds something, you should redirect the output to NUL. E.g., `findstr /i /c:"System32" >NUL` – indiv May 09 '15 at 01:27