При работе в среде Bash , чтобы установить значение переменной в результате выполнения команды, я обычно делаю:
var=$(command -args)
где var
- переменная, установленная командой command -args
. Затем я могу получить доступ к этой переменной как $var
.
Более традиционный способ сделать это, совместимый почти со всеми оболочками Unix:
set var=`command -args`
Тем не менее, как я могу установить значение переменной с результатом команды в пакетном файле Windows ? Я пробовал:
set var=command -args
Но я обнаружил, что var
это установлено, command -args
а не вывод команды.
windows
batch-file
Фрэнсис
источник
источник
for /f "delims=" %a in ('ver') do @set foobar=%a
в командной строке. использованиеfor /f "delims=" %%a in ('ver') do @set foobar=%%a
в файлах сценарияbash
. Затем вы можете писать команды bash. Вы также можете выполнять сценарии bash.Следует быть осторожным, поскольку пакетная команда Windows:
не имеет той же семантики, что и оператор оболочки Unix:
Рассмотрим случай, когда команда не работает, вызывая ошибку.
В версии оболочки Unix присвоение "theValue" все еще происходит, любое предыдущее значение заменяется пустым значением.
В пакетной версии Windows ошибка обрабатывается командой for, а условие do никогда не достигается, поэтому любое предыдущее значение theValue будет сохранено.
Чтобы получить больше Unix-подобной семантики в пакетном сценарии Windows, вы должны убедиться, что выполняется присвоение:
Невозможность очистки значения переменной при преобразовании сценария Unix в пакет Windows может быть причиной незначительных ошибок.
источник
command
; например:for /f "delims=" %%a in ('command1 ^| command2') do set VAR=%%a
.Вот как я это делаю, когда мне нужны результаты запроса к базе данных в моем пакетном файле:
Ключ находится в строке 2: «set / p» устанавливает значение «result» равным значению (только) первой строки в «__query.tmp» с помощью оператора перенаправления «<».
источник
Я видел это только так:
ver
- это команда версии для Windows, и в моей системе она производит:Источник
источник
Официальные документы Microsoft для
for
командыисточник