如果字符串等于某事,请打开文件批处理

时间:2015-12-24 09:48:00

标签: batch-file

我正在尝试根据插入的字符串创建一个启动特定程序的批处理文件,这就是我所拥有的:

@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 
)

但它似乎没有用,我做错了什么?

1 个答案:

答案 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。