if语句中的空格

时间:2015-06-15 19:40:09

标签: batch-file if-statement input spaces

我似乎无法让if语句适用于Hello World。我认为这是因为空间,但任何帮助都会受到赞赏。

if %A%==Chrome (
    start "" "C:\Users\Matthew\Appdata\Local\Google\Chrome\Application\chrome.exe\"
) else (
    if %A%==Steam (
        start "" "C:\Program Files (x86)\Steam\Steam.exe\"
    ) else (
        if %A%==CMD (
            start
        ) else (
            if %A%==System32 (
                start "" "C:\Windows\System32\"
            ) else (
                if %A%==Appdata (
                    start "" "C:\Users\Matthew\Appdata\"
                ) else (
                    if %A%==Skype (
                        goto Skype
                    ) else (
                        if "%A%"=="Hello World" (
                            goto HelloWorld
                        )
                    )   
                )
            )           
        )
    )
)

1 个答案:

答案 0 :(得分:3)

如果%A%的内容包含空格(Hello world),则第一个条件将失败,因为它将被解析为

if Hello World==Chrome (

如果您希望变量中包含空格,则需要使用不在最后条件中但在所有条件下的引号

if "%A%=="Chrome" (
    start "" "C:\Users\Matthew\Appdata\Local\Google\Chrome\Application\chrome.exe\"
) else if "%A%"=="Steam" (
    start "" "C:\Program Files (x86)\Steam\Steam.exe"
) else if "%A%"=="CMD" (
    start
) else if "%A%"=="System32" (
    start "" "C:\Windows\System32\"
) else if "%A%"=="Appdata" (
    start "" "C:\Users\Matthew\Appdata\"
) else if "%A%"=="Skype" (
    goto Skype
) else if "%A%"=="Hello World" (
    goto HelloWorld
)