好了,所以..
1 @echo off
2 set /p %lnk%="Setup Name = "
3 if "%lnk%=="install.itunes.x64.windows" goto itunes
4 :itunes
5 start=(path)(setup.exe).....
6 cls
一些错误,但你靠近。
在第2行,你用:
set /p %lnk%=="Setup Name = " goto itunes
当设置你不能使用%%它周围的变量,但比较多数民众赞成时仅使用,因为在创建变量时,计算机将取代[ set/p%lnk%=]与[set/p =],这是无效的语法。
在第3行:
if "%lnk%=="install.itunes.x64.windows" goto itunes
你永远不会关闭在 '==' 比较左侧的报价。请注意,您还可以使用[if%val1%equ%val2%]获得相同的结果,这对您使用其他比较标签时可以提供帮助。
虽然[goto itunes]可以正常工作,但它是使用[goto:itunes]的好习惯,如果您想将所有代码放在一起,您可以创建一个脚注代码块,如:
if %val1% equ %val2% (
rem do stuff here
)
做笔记,如果你要么需要一个任务,如果变量匹配运行,如果不尝试下一场比赛,你可以使用这些多。否则,你可以使用:
if %val1% equ %val2% (
rem do stuff here
) else (
rem do other stuff here
)
在回答您的问题就可以推出下一个命令,那是因为在第3行,你检查变量的字符串相匹配,但如果它不批跳过它,下次运行行,这是你的:itunes标签。总之,在修复[start =(path)(setup.exe).....]按需启动后,这应该会更好。
@echo off && color f0 && title Itunes
:top
cls
set /p lnk="Setup Name = "
if "%lnk%"=="install.itunes.x64.windows" (
start=(path)(setup.exe).....
cls
)
cls
echo "%lnk%" was not matched to any choices...
pause
goto :top
:: _Arescet
来自SET/P命令删除百分比符号。 – Squashman
''%lnk%''也应该是''%lnk%''' – SomethingDark
'if'命令后,你无意中掉进了':itunes'节,所以你需要一个'goto:EOF'或'goto': 'if'后的somewhere_else' ... – aschipfl