2015-05-08 3 views
-1

Предположим, что переменная имеет значение 'hello world'.Выполнять различные команды на основе содержимого переменной

Я хочу сделать это так, что не имеет значения, что еще в переменной: если у него есть определенное слово, например, hello, он выполняет определенную команду.

Если у него нет слова hello, он выполняет другую команду.

+1

Читать пример _Boolean Test «действительно существует строка?» _ В http://ss64.com/nt/syntax-replace.html – JosefZ

ответ

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

Из файла справки MSDos 6.22.

FIND выход кода

Следующий список показывает каждый код выхода и краткое описание его значения:

0 Обыск успешно завершен, и по крайней мере один матч был найден.

1 Поиск был успешно выполнен, но совпадения не найдены.

2 Поиск не выполнен успешно. В этом случае во время поиска произошла ошибка , и FIND не может сообщить, были ли найдены совпадения .

Вы можете использовать параметр ERRORLEVEL в командной строке в пакетной программе для обработки кодов выхода, возвращаемых FIND.

И о специальных символах CMD.

& 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. 
+0

Если вы не хотите Findstr напечатать строку он нашел в когда он на самом деле что-то находит, вы должны перенаправить вывод в NUL. Например, 'findstr/i/c:" System32 "> NUL' – indiv

Смежные вопросы