Проверьте, пуста ли динамическая переменная - Пакет - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу проверить, пуста ли динамическая переменная. У меня есть переменные f1-f9, и теперь я хочу проверить вот так:

IF f%ERRORLEVEL%=" " //do something

Но это не работает. Я также попробовал:

IF !f%ERRORLEVEL%!

Но это тоже не работает.

EDIT:

Переменные f1-f9 создаются следующим образом:

set "f1= "
set "f2= "
...

%ERRORLEVEL% содержит число от 1 до 9 (поступает из команды выбора)

1 Ответ

0 голосов
/ 14 сентября 2018

Вы пытаетесь сопоставить значение f1, равное , с " " Так что просто исправьте это, добавив двойные кавычки около% f1%, см. Пример:

IF %ERRORLEVEL%==1 (
    IF "%f1%"==" " (
        set "f1=%turn%"
    ) ELSE (
        goto draw_screen
    )

Но по вашему вопросуДля простого сценария вам сначала понадобится delayedexpansion, а затем несколько простых, если тестируете:

@echo off
setlocal enabledelayedexpansion
set "f1= "
set "f2= "
set "f3= "
set "errorlevel=2"

if "!f%errorlevel%!"==" " (
    set "f%errorlevel%=%turn%"
) else (
    goto draw_screen
)

Я использую f1-3 только для упрощения ответа и наблюдательного подражания errorlevel в качестве теста.Это единственный оператор if, который будет соответствовать любому уровню ошибки, вы можете проверить его, изменив приведенное выше значение errorlevel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...