Und*_*tex 18 if-statement batch-file
这段代码有什么问题?
IF "%language%" == "de" (
goto languageDE
) ELSE (
IF "%language%" == "en" (
goto languageEN
) ELSE (
echo Not found.
)
Run Code Online (Sandbox Code Playgroud)
我不是很擅长批量..
Mag*_*goo 32
@echo off
title Test
echo Select a language. (de/en)
set /p language=
IF /i "%language%"=="de" goto languageDE
IF /i "%language%"=="en" goto languageEN
echo Not found.
goto commonexit
:languageDE
echo German
goto commonexit
:languageEN
echo English
goto commonexit
:commonexit
pause
Run Code Online (Sandbox Code Playgroud)
的一点是,批量简单地通过线通过指令继续,线,直到它到达一个goto,exit或文件结束-.它没有sections控制流量的概念.
因此,在进入de会跳转到:languagede后来干脆继续执行指令,直到文件结束,呈现de然后en再not found.
npo*_*aka 12
@echo off
set "language=de"
IF "%language%" == "de" (
goto languageDE
) ELSE (
IF "%language%" == "en" (
goto languageEN
) ELSE (
echo Not found.
)
)
:languageEN
:languageDE
echo %language%
Run Code Online (Sandbox Code Playgroud)
这可行,但不确定您的语言变量是如何定义的.它的定义中是否有空格.
batchfiles使用变量执行简单的字符串替换.所以,简单
goto :language%language%
echo notfound
...
Run Code Online (Sandbox Code Playgroud)
这样做没有任何需要if.