Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Научить cmd проверять кусочек из введенной пользователем фразы. (http://forum.oszone.net/showthread.php?t=355210)

unexisted 03-05-2024 14:08 3026967

Научить cmd проверять кусочек из введенной пользователем фразы.
 
Здравствуйте, всем.

Есть кусочек кода cmd, который выполняет команды (открывает разные настройки) исходя из введенного пользователем запроса. Вот пример:

:start
set /p a=Введите что вам нужно:
if /i "%a%" equ "мышь" main.cpl &goto start
if /i "%a%" equ "мышка" main.cpl &goto start
if /i "%a%" equ "настроить мышку" main.cpl &goto start
if /i "%a%" equ "настройки мышки" main.cpl &goto start

Здесь команда if проверяет точное совпадение значений и только тогда выполняет main.cpl
Цель: возможно ли каким-нибудь образом сделать (создать отдельную переменную) или любым способом, чтобы команда if проверяла на совпадение только кусочек введенного пользователем значения, например "мышк"

Чтобы в итоге если пользователь ввел что-угодно содержащее "мышк" и открывались настройки мышки.

Примеры Чего-угодно что может ввести пользователь:
Открой настройки мышки
Открыть настройки мышки
Открой мне настройки мышки
Запустить настройки мышки
и т.д.

Заранее узнать что может ввести пользователь и прописывать все возможные варианты в строках if не представляется возможным.
Но во всех фразах точно будут присутствовать выделенный фрагмент.

Заранее всем спасибо большое за идеи и помощь.

NickM 03-05-2024 14:53 3026968

Так?
Сохранять в cp866
Код:

@echo off
:start
set /p a=Введите что вам нужно:
echo.%a% | findstr мышк > nul
if Not ErrorLevel 1 (main.cpl)
goto start


Sham 03-05-2024 16:06 3026969

Код:

for /f %%f in ('echo %a%^| findstr /I /R "^мыш[ьаку]*$"') do main.cpl & goto start

unexisted 03-05-2024 16:57 3026970

Именно так, NickM. Спасибо большое.

Sham, вам тоже спасибо большое. Я правильно понял, в вашем варианте обязательными будут считаться символы "мыш" (три символа), и ещё обязательно один из четырех в квадратных скобках?
Или наоборот [ьаку] - они могут присутствовать, но не обязательно?

В любом случае, сейчас проведу эксперименты. Спасибо ОГРОМНОЕ!


Время: 23:12.

Время: 23:12.
© OSzone.net 2001-