批处理文件有哪些If-Else语句的替代方法?

时间:2016-10-14 19:44:29

标签: batch-file

我试图为我的shell创建一个.bat文件:启动以方便访问。 .bat不接受别人作为一个术语。我可以做些什么来使我的代码工作?如果没有其他的'替代方案,是否存在不等同的运算符?

代码:

@echo off
cls
echo Desktop Startup Initiated...
cd "C:\Users\User1\Desktop
goto start


:start
pause
set /p x=Please select an option.     1.Heavy start     2.Light start               Enter Here:

if %x% == 1 (goto heavy)
if %x% == 2 (goto light)
else (echo Invalid.
pause
goto :start)

:light
start Slack.lnk
start Outlook.lnk
exit

:heavy
start chrome.exe
start Review.txt
start Notes.txt
start Slack.lnk
start Outlook.lnk
exit

如果没有其他替代方法,我可以在其位置重新定向以启动非等号参数。

2 个答案:

答案 0 :(得分:1)

为什么要使用其他? 从逻辑上讲,如果它不等于1或2,它将转到无效语句

if %x% == 1 goto heavy
if %x% == 2 goto light
echo Invalid.
pause
goto :start

如果您真的想使用else

if %x% == 1 goto heavy
if %x% == 2 (goto light
   ) else (
   echo Invalid.
   pause
   goto :start
   )

答案 1 :(得分:1)

尝试使用CHOICE,然后可以设置超时的默认选项。 (这在没有响应的情况下30秒后选择Light)

@ECHO OFF
ECHO Desktop Startup Initiated...
PUSHD "%USERPROFILE%\Desktop"
CHOICE /C LH /T 30 /D L /M "Please select Light or Heavy start "
IF ERRORLEVEL 2 GOTO :Heavy 
START Slack.lnk
START Outlook.lnk
EXIT/B
:Heavy
START chrome.exe
START Review.txt
START Notes.txt
START Slack.lnk
START Outlook.lnk