Я пишу командный файл, и я хочу запустить цикл for, который устанавливает его первое значение переменной. Мне нужно только первое значение команды, но я не мог найти другого способа сделать это. Способ, которым я его настроил, - это цикл for, а затем оператор do, который говорит, что если переменная не установлена, задайте переменную. Проблема заключается в том, когда это выполняется, цикл использует переменную unset каждый раз вместо того, чтобы рассматривать ее как установленную после первого цикла.Batch For loop для получения первого значения
Например, мой, если говорит if "%foo%"=="" set foo=%%i
и вывод выглядит следующим образом if "" == "" set foo="hello"
следующего цикла по-прежнему будет сказать if "" == "" set foo="bar"
Есть ли способ обойти это? Я попытался установить задержку расширения, и это не помогло. Я также открыт для других способов, которые дадут мне только первое значение из команды.
Пожалуйста, поставьте здесь то, что вы пытались до сих пор. –
Отложенное расширение сработало бы, если бы вы включили его, и изменили '% foo%' на '! Foo!' – dbenham
. Ответ ниже работал. Я пробовал с задержкой расширения! но мне, возможно, пришлось использовать больше управляющих символов. – TBrenner