Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


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

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


Цитата ateka:
На вход скрипта приходит одного из трёх видов. И в зависимости от вида url я его обрабатываю нужным образом. »
Длинно, но зато CMD
Код: Выделить весь код
@Echo Off
cls
	Set "URL=https://site.com/user/anything/anything"
	Call :DefOut "%URL%" "Log" "Out"
	Call :Sub%Log% "%URL%" "%Log%" "%Out%"

	Set "URL=https://anything.site.com/anything-anything-12345678/anything"
	Call :DefOut "%URL%" "Log" "Out"
	Call :Sub%Log% "%URL%" "%Log%" "%Out%"

	Set "URL=https://anything.site.com/"
	Call :DefOut "%URL%" "Log" "Out"
	Call :Sub%Log% "%URL%" "%Log%" "%Out%"
pause
Exit /B

:Sub1
	Echo =======
	Echo Вариант %2: user
	Echo %1
	Echo %3
	Echo.
Exit /B

:Sub2
	Echo =======
	Echo Вариант %2: Цифры
	Echo %1
	Echo %3
	Echo.
Exit /B

:Sub3
	Echo =======
	Echo Вариант %2: Субдомен
	Echo %1
	Echo %3
	Echo.
Exit /B

:DefOut
SetLocal
	Set "In=%~1"
	Set "In=%In:*//=%"
	Set "Reg=-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"
	
	FOR /F "tokens=1,2 delims=/" %%s IN ("%In%") DO (
		If "%%t"=="" (
			FOR /F "tokens=1 delims=." %%a IN ("%In%") DO (
				EndLocal &(Set /A %~2=3 &Set "%~3=%%a" &Exit /B 3)
			)
		)
		Set "In2=%%t"
		Call Set "In2=%%In2:~-9%%"
		Echo %%t|findstr /E /R /C:"%Reg%">nul||(
			EndLocal &(Set /A %~2=1 &Set "%~3=%%t" &Exit /B 1)
		)
	)
	Echo %In2%|findstr /E /R /C:"%Reg%">nul&&EndLocal &(Set /A %~2=2 &Set "%~3=%In2:~-8%" &Exit /B 2)
EndLocal &(Set /A %~2=0 &Set "%~3=" &Exit /B 0)	
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 16:00, 11-09-2020 | #10