加急,cmd批处理if语句问题(应该是)

2024-11-20 14:32:03
推荐回答(2个)
回答(1):

@echo off
setlocal enabledelayedexpansion

echo,
echo 本地请输1,远程请输2,自定义请输3
echo,
set /p fir=请输入链接目标:

if "!fir!"=="3" (
    goto Custom
) else (
    if "!fir!"=="1" (
        echo,
        echo 无密码输1,带密码输2
        echo,
        set /p lo=选择版本:
        if "!lo!"=="1" (
            cd /d E:\phpstudy\www\redis
            redis-cli -h localhost -p 6379
        ) else (
            cd /d E:\phpstudy\www\redis
            redis-cli -h localhost -p 6379 -a 12345
        )
    ) else (
        if "!fir!"=="2" (
            echo,
            echo 无密码输1,带密码输2
            echo,
            set /p re=选择版本:
            if "!re!"=="1" (
                cd /d E:\phpstudy\www\redis
                redis-cli -h 192.168.1.1 -p 6379
            ) else (
               灶灶 cd /d E:\phpstudy\www\redis
                redis-cli -h 192.168.1.1 -p 6379 -a 12345
            )
        )
   灶辩缺 )
)

exit

:Custom
::以下写选择自定义输入后执行的代码

这是修正并优化去除了一些多余命令后的代码。

再来一个继续缩减代码优化的:

@echo off
setlocal enabledelayedexpansion

echo,
echo 本地请输1,远程请输2,自定义请输3
echo,
set /p fir=请输入链接目标:

if "!fir!"=="3" (
    goto Custom
) else (
    if "!fir!"=="1" (
        set host=localhost
        set pass=12345
        goto Select
    ) else (
      隐辩  if "!fir!"=="2" (
            set host=192.168.1.1
            set pass=12345
            goto Select
        )
    )
)
exit

:Select
echo,
echo 无密码输1,带密码输2
echo,
set /p Select=选择版本:
if "!Select!"=="1" (
    cd /d E:\phpstudy\www\redis
    redis-cli -h !host! -p 6379
) else (
    cd /d E:\phpstudy\www\redis
    redis-cli -h !host! -p 6379 -a !pass!
)
exit

:Custom
::以下写选择自定义输入后执行的代码

回答(2):

你把最外层三个判断分汪枝开就完事困宴敏了
IF %FIR%=="1"
IF %FIR%=="2"
IF %FIR%=="3"
或者是
for %%i in ( 1 2 3 ) do (
set /p fir="请输入:"
if "%FIR%"=="%%i"祥轿 (
goto select%i%
)
else exit
)
:select1

xxxx
:select2
xxxx
:selet3
xxxxx