我现在一直在写一些批处理文件。我是初学者!所以我做了一个自定义批处理,通过输入设置名称,它启动了它。我在创建此自定义文件时遇到了一些问题。
@echo off
set /p lnk="Setup Name = "
if "%lnk%"=="install.itunes.x64.windows" goto itunes
:itunes
start=(path)(setup.exe).....
cls
但是,如果用户输入" itues或" installitunes"或" KJEWBFciou"如果不匹配我的自定义命令,我希望在这种情况下出现错误弹出窗口。
我能做什么?
并且不要求"if not "%lnk%"
我已经尝试过帮助等级:0
因为如果输入不等于自定义命令,我有很多像itunes的设置,它会启动下一个设置。
请帮帮我
请igonre我的错误我只是在这里,而不是在批处理文件中。 在线2%lnk%,lnk 和第3行"%lnk" "%LNK%"
答案 0 :(得分:0)
好的..
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