Я новичок в пакетных сценариях Windows. У меня есть вопрос, хотя.
В пакетных сценариях Windows как узнать, является ли переменная допустимым URL-адресом или нет?
Пример:
Действительный URL:
URL = https://stackoverflow.com/questions/ask
Неверный URL:
url = недействительный URL
Вы можете использовать FINDSTR для проверки вашего URL путем сопоставления его с регулярным выражением.См. Ответы на этот вопрос переполнения стека Регулярные выражения в findstr
В основном вам придется понять
, как использовать FINDSTR и его /R переключатель.См. HELP FINDSTR
HELP FINDSTR
, как кодировать регулярное выражение для сопоставления и проверки URL-адресов.Google для регулярных выражений учебник.
Подсказка: (http|https)://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
(http|https)://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
и как интерпретировать результаты FINDSTR в пакетном файле.См HELP FOR
HELP FOR
Это просто и должно работать в большинстве случаев:
setlocal enableextensions enabledelayedexpansion set URL=url to test if not x%URL:http://=%==x%URL% goto http if not x%URL:https://=%==x%URL% goto http if not x%URL:ftp://=%==x%URL% goto ftp REM else echo invalid url!
Не беспокойся. Все, что вы используете, не будет идентично правилам, которые использует программа, которую вы собираетесь запустить. Просто позвольте программе решить.