我正在尝试根据插入的字符串创建一个启动特定程序的批处理文件,这就是我所拥有的:
@echo off
color 2
echo Welcome Frej
SET /P %do%=What do you want to do today?
IF %do%=Minecraft (cd C:/Program Files (x86)/Minecraft
start MinecraftLauncher.exe
PAUSE
exit
)
IF %do%=Code (cd C:/Users/ItzBenteThePig/Desktop/eclipse
start eclipse.exe
PAUSE
exit
)
IF %do%=Bukkit (cd C:/Users/ItzBenteThePig/Desktop/eclipse-bukkit
start eclipse.exe
PAUSE
exit
)
但它似乎没有用,我做错了什么?
答案 0 :(得分:1)
以下是您的代码更正:
@echo off
color 2
echo Welcome Frej
SET /P "Action=What do you want to do today? "
IF "%Action%"=="Minecraft" (
cd /D "%ProgramFiles(x86)%\Minecraft"
start MinecraftLauncher.exe
PAUSE
exit
)
IF "%Action%"=="Code" (
cd /D "%USERPROFILE%\Desktop\eclipse"
start eclipse.exe
PAUSE
exit
)
IF "%Action%"=="Bukkit" (
cd /D "%USERPROFILE%\Desktop\eclipse-bukkit"
start eclipse.exe
PAUSE
exit
)
要比较两个字符串,您必须使用==
而不仅仅是=
。
通常建议在字符串比较中使用周围的引号,特别是在这种情况下,批处理文件的用户只需按 RETURN 或 ENTER 而不输入任何结果如果在用户提示符之前尚未定义变量且未定义,则使用默认值。
在set /P
之后应该指定变量的名称,而不是对变量值的引用(在大多数情况下)。
do
是命令行语法中的关键字。请勿使用预定义关键字作为变量的名称。
在命令提示符窗口中执行set
而不使用任何参数会导致显示当前用户帐户的所有预定义环境变量。建议使用这些预定义的变量。
Windows上的目录分隔符为\
,而Unix / Linux / Mac上的目录分隔符为/
。好吧,Windows命令处理器会自动替换所有/
\
,但最好使用正确的目录分隔符。
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
cd /?
color /?
echo /?
exit /?
if /?
pause /?
set /?
start /?
顺便说一下:您是否知道可以在桌面或Windows开始菜单中为快捷方式定义热键,以便在按下此组合键的情况下快速启动应用程序。 Ctrl + Alt + Letter是快速启动应用程序的好方法。使用快捷键属性中定义的热键Ctrl + Alt + M快速启动Minecraft可以快速启动Minecraft。