检查用户输入是否包含子字符串
Check if userinput contains substring
您好,请帮我解决这个问题!
我想检查用户输入 URL 是否包含定义的 SUBSTRING 。
If yes 我想 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
正确使用双引号有助于解决您的一些问题。如果您也为回显使用引号,则无需使用延迟扩展。
@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 . . .
这是工作代码。我现在将我遇到的问题说出来,以便其他人从中学习
- 我必须不启用
setlocal enabledelayedexpansion
- 我必须在 SET 命令的变量周围使用引号
- 因为我禁用了
delayedexpansion
我 必须 使用百分比而不是感叹号当我以后想在命令中使用变量时
如果我错了请纠正我,但这是我在这些人的帮助下以及我自己通过反复试验得出的结论
我列出了这个列表并更新了代码,所以如果像我这样的新手遇到困难,他们可以看看这个 post。
再次感谢大家!
@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
您好,请帮我解决这个问题! 我想检查用户输入 URL 是否包含定义的 SUBSTRING 。 If yes 我想 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
正确使用双引号有助于解决您的一些问题。如果您也为回显使用引号,则无需使用延迟扩展。
@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 . . .
这是工作代码。我现在将我遇到的问题说出来,以便其他人从中学习
- 我必须不启用
setlocal enabledelayedexpansion
- 我必须在 SET 命令的变量周围使用引号
- 因为我禁用了
delayedexpansion
我 必须 使用百分比而不是感叹号当我以后想在命令中使用变量时
如果我错了请纠正我,但这是我在这些人的帮助下以及我自己通过反复试验得出的结论 我列出了这个列表并更新了代码,所以如果像我这样的新手遇到困难,他们可以看看这个 post。 再次感谢大家!
@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