Проверьте, содержит ли userinput подстроку - PullRequest
0 голосов
/ 31 марта 2020

Здравствуйте, пожалуйста, помогите мне с этим! Я хотел бы проверить, содержит ли пользовательский ввод URL определенный SUBSTRING или нет. Если да, я бы хотел GOTO LONG else GOTO SHORT

Спасибо!

 @echo off


setlocal enabledelayedexpansion enableextensions

SET /P "URL= Input the link of the video: "



SET "SUBSTRING=?filter=archives&sort=time"




ECHO !URL! | FINDSTR /C:"!SUBSTRING!">nul
IF ERRORLEVEL 1 (GOTO SHORT) ELSE GOTO LONG


:LONG
SET LINK=1
ECHO THIS IS A LONG LINK
ECHO "THE LINK NUMBER IS %LINK%"
ECHO !URL!
GOTO END



:SHORT
SET LINK=0
ECHO THIS IS A SHORT LINK
ECHO "THE LINK NUMBER IS %LINK%"
ECHO !URL!
GOTO END


:END
pause

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Правильное использование двойных кавычек помогает решить некоторые ваши проблемы. Не должно быть необходимости использовать отложенное расширение, если вы также используете кавычки для эха.

@echo off

SET /P "URL=Input the link of the video:"

SET "SUBSTRING=?filter=archives"

ECHO "%URL%"|FINDSTR /C:"%SUBSTRING%">nul
IF ERRORLEVEL 1 (GOTO SHORT) ELSE GOTO LONG

:LONG
SET LINK=1
ECHO THIS IS A LONG LINK
ECHO "THE LINK NUMBER IS %LINK%"
GOTO END

:SHORT
SET LINK=0
ECHO THIS IS A SHORT LINK
ECHO "THE LINK NUMBER IS %LINK%"
GOTO END

:END
pause

Обновление, показывающее выполнение командного файла.

C:\Users\Squashman\Desktop>test.bat
Input the link of the video:https://www.twitch.tv/videos/578427308?filter=archives&sort=time
THIS IS A LONG LINK
"THE LINK NUMBER IS 1"
Press any key to continue . . .
0 голосов
/ 01 апреля 2020

Так что это рабочий код. Теперь я упомяну о проблемах, которые у меня были, чтобы другие могли извлечь из них

  1. I must not enable setlocal enabledelayedexpansion
  2. Я должен использовать кавычки вокруг переменных для команда SET
  3. Поскольку у меня delayedexpansion отключено, я должен использовать проценты вместо восклицательных знаков, когда я хочу использовать переменную в команде позже

Поправьте меня, если я ошибаюсь, но это то, что я выяснил с помощью этих парней и самостоятельно методом проб и ошибок, я составил этот список и обновил код, так что если новичок ie, как я, застрянет они могут взглянуть на этот пост. Еще раз спасибо, ребята!

@echo off

SET /P "URL=Input the link of the video:"

SET "SUBSTRING=?filter=archives"

ECHO "%URL%"|FINDSTR /C:"%SUBSTRING%">nul
IF ERRORLEVEL 1 (GOTO SHORT) ELSE GOTO LONG

:LONG
SET LINK=1
ECHO THIS IS A LONG LINK
ECHO "THE LINK NUMBER IS %LINK%"
GOTO END

:SHORT
SET LINK=0
ECHO THIS IS A SHORT LINK
ECHO "THE LINK NUMBER IS %LINK%"
GOTO END

:END
pause
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...