Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск текста в переменной

Ответить
Настройки темы
CMD/BAT - [решено] Поиск текста в переменной

Пользователь


Сообщения: 94
Благодарности: 10

Профиль | Отправить PM | Цитировать


Изменения
Автор: Bruce Wayne
Дата: 26-07-2013
Доброе время суток!

Подскажите, пожалуйста, как можно реализовать поиск текста в переменной? Чтобы, например, если переменная %%i содержала слово (не обязательно выделенное пробелами или иными разделительными знаками) Advanced, то открывался бы блокнот? И, если можно, как подобное можно провернуть с несколькими словами? Например, со словами Advanced, Micro, Devices и Inc.?

Заранее спасибо!

Отправлено: 22:58, 26-07-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Пример с одним словом:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sVar=bla-bla-blaAdvancedbla-bla-bla

if not "%sVar%" equ "%sVar:Advanced=%" (
	echo Found
) else (
	echo Not found
)

endlocal
exit /b 0
Пример с несколькими словами:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sVar=bla-bla-blaInc.bla-bla-bla

set /a bFound = 0

for %%i in (Advanced Micro Devices Inc.) do (
	if not "%sVar%" equ "!sVar:%%i=!" (
		set /a bFound = 1
	)
)

if %bFound% equ 1 (
	echo Found
) else (
	echo Not found
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:27, 26-07-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off &setlocal enableextensions
for /f "delims=" %%i in ('type text.txt') do (

	echo(%%i|findstr /c:Advanced >nul &&echo(%%i|findstr /c:Micro >nul &&echo(%%i|findstr /c:Devices >nul &&echo(%%i|findstr /c:Inc. >nul &&echo Found

)
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:40, 26-07-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


kiripanda, точно, подзабыл. Тогда ещё проще:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sVar=bla-bla-blaInc.bla-bla-bla

echo %sVar%| findstr.exe /c:"Advanced" /c:"Micro" /c:"Devices" /c:"Inc." && echo Found || echo Not found


endlocal
exit /b 0

Отправлено: 00:03, 27-07-2013 | #4


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Не, тогда Found будет на любое из слов, а как я понял нужно все слова одновременно:
Advanced AND Micro AND Devices AND Inc.

Отправлено: 00:07, 27-07-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата kiripanda:
Не, тогда Found будет на любое из слов, а как я понял нужно все слова одновременно: »
Ну, а я понял именно что любое.

Одним словом, придёт автор — выберет по вкусу .
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:25, 27-07-2013 | #6


Пользователь


Сообщения: 94
Благодарности: 10

Профиль | Отправить PM | Цитировать


Iska, kiripanda, спасибо вам огромное! Оба варианта (с реакцией хотя бы на одно из нескольких слов и только на все) великолепны! То что надо!

Последний раз редактировалось Bruce Wayne, 27-07-2013 в 08:38.


Отправлено: 08:24, 27-07-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Bruce Wayne, так Вам-то какой был нужен?!

Отправлено: 14:45, 27-07-2013 | #8


Пользователь


Сообщения: 94
Благодарности: 10

Профиль | Отправить PM | Цитировать


Iska, изначально был нужен Ваш вариант, но впоследствии я понял, что решение kiripanda тоже подойдёт в некоторых случаях. Словом, вы оба угадали Извините, что сразу не поставил конкретную задачу... Ещё раз большое спасибо!

Отправлено: 07:43, 28-07-2013 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск текста в переменной

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Поиск и замена текста firstarey Скриптовые языки администрирования Windows 2 09-04-2013 08:44
CMD/BAT - поиск файла по путям, заданным в произвольной переменной окружения CyberMuesli Скриптовые языки администрирования Windows 4 25-06-2012 14:23
CMD/BAT - поиск в переменной спецсимволов vosya Скриптовые языки администрирования Windows 1 05-01-2012 01:27
[решено] Вставка переменной в поле текста Freez AutoIt 4 18-02-2010 10:17
C/C++ - Поиск текста в файлах student_po Программирование и базы данных 6 04-09-2009 23:33




 
Переход