Показать полную графическую версию : [решено] Поиск текста в переменной
Bruce Wayne
26-07-2013, 22:58
Доброе время суток!
Подскажите, пожалуйста, как можно реализовать поиск текста в переменной? Чтобы, например, если переменная %%i содержала слово (не обязательно выделенное пробелами или иными разделительными знаками) Advanced, то открывался бы блокнот? И, если можно, как подобное можно провернуть с несколькими словами? Например, со словами Advanced, Micro, Devices и Inc.?
Заранее спасибо!
Пример с одним словом:
@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
kiripanda
26-07-2013, 23:40
@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
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
kiripanda
27-07-2013, 00:07
Не, тогда Found будет на любое из слов, а как я понял нужно все слова одновременно:
Advanced AND Micro AND Devices AND Inc.
Не, тогда Found будет на любое из слов, а как я понял нужно все слова одновременно: »
Ну, а я понял именно что любое.
Одним словом, придёт автор — выберет по вкусу ;).
Bruce Wayne
27-07-2013, 08:24
Iska, kiripanda, спасибо вам огромное! Оба варианта (с реакцией хотя бы на одно из нескольких слов и только на все) великолепны! :up: То что надо! :ok:
Bruce Wayne, так Вам-то какой был нужен?!
Bruce Wayne
28-07-2013, 07:43
Iska, изначально был нужен Ваш вариант, но впоследствии я понял, что решение kiripanda тоже подойдёт в некоторых случаях. Словом, вы оба угадали :) Извините, что сразу не поставил конкретную задачу... Ещё раз большое спасибо! :oszone:
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.