好了,所以..
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