1

私はこれを機能させようとしていますが、どうやら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.
)
4

1 に答える 1

2

if ステートメントで比較演算子を使用する必要があります (最初の 2 つの if にはありません)。 EQUまたは== また、管理者をに設定していますが、同じではないtrueものと比較して"true"います。

Windows のユーザー名にはスペースが含まれている可能性があるため、バッチ ファイルはスペースの影響を非常に受けやすいので、比較対象を引用符で囲むことをお勧めします。UserName が Semedar または 1394677 の場合、administrator を 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.
)
于 2012-12-31T21:51:19.293 に答える