批处理文件问题 - 嵌套/分支'IF'语句

时间:2012-12-31 21:28:45

标签: file if-statement batch-file nested branch

我正试图让这个工作,但显然Windows不喜欢它。一旦它到达我的批处理文件的这一部分,.bat就会关闭。

if %UserName% = Semedar (
    if %UserName% 1394677 (
        set administrator=true
    )
)

if %administrator% == "true" (
    echo This shows up for the admin
) Else (
    echo otherwise if %UserName% doesn't equal "Semedar" or "1394677" this shows up.
)

1 个答案:

答案 0 :(得分:2)

您需要在if语句中使用比较运算符(前两个ifs中缺少这些运算符)。 EQU==此外,您还要将管理员设置为true,但将其与"true"进行比较,但不一样。

请注意,批处理文件对空间非常敏感,因此最好将您的比较括在引号中,因为Windows用户名可能包含空格。你的意思是说如果UserName是Semedar或1394677然后将管理员设置为true?因为使用嵌套的if语句,它将检查UserName是否等于两者。

if "%UserName%" EQU "Semedar" set "administrator=true"
if "%UserName%" EQU "1394677" set "administrator=true"

if "%administrator%" EQU "true" (
    echo This shows up for the admin
) Else (
    echo otherwise if %UserName% doesn't equal "Semedar" or "1394677" this shows up.
)