пакетный файл: какой лучший способ объявить и использовать логическую переменную?

<p>какой лучший способ объявить и использовать логическую переменную в пакетных файлах? это то, что я делаю сейчас:</p><pre><code>set "condition=true" :: some code that may change the condition if %condition% == true ( :: some work ) </code></pre><p>есть ли лучший, более «формальный» способ сделать это? (например, в bash вы можете просто выполнить <code>if $condition</code>, так как <code>true</code> и <code>false</code> являются собственными командами.)</p>

<p>я придерживаюсь своего первоначального ответа на данный момент:</p><pre><code>set "condition=true" :: some code... if "%condition%" == "true" ( %= do something... =% ) </code></pre><p>если кто-нибудь знает лучший способ сделать это, пожалуйста, ответьте на этот вопрос, и я с радостью приму ваш ответ.</p>

<pre><code>set "condition=" </code></pre><p>а также</p><pre><code>set "condition=y" </code></pre><p>где <code>y</code> может быть любой строкой или числом.</p><p>это позволяет <code>if defined</code> и <code>if not defined</code>, которые оба могут использоваться внутри оператора блока (заключенная в скобки последовательность операторов), для запроса состояния флага во время выполнения без использования <code>enabledelayedexpansion</code></p><hr><p>то есть.</p><pre><code>set "condition=" if defined condition (echo true) else (echo false) set "condition=y" if defined condition (echo true) else (echo false) </code></pre><p>первый будет повторять <code>false</code>, второй <code>true</code></p>

<p>я полагаю, что другой вариант будет использовать «1 == 1» в качестве значения истинности.</p><p>таким образом, повторяя пример:</p><pre><code>set condition=1==1 :: some code if %condition% ( %= do something... =% ) </code></pre><p>конечно, можно установить некоторые переменные для хранения значений <code>true</code> и <code>false</code>:</p><pre><code>set true=1==1 set false=1==0 set condition=%true% :: some code if %condition% ( %= do something... =% ) </code></pre>