Примечание. Все это требует, чтобы команды находились в командном файле. Отсюда двойные %
знаки.
Вы можете использовать команду for
для захвата выходных данных команды:
for /f "usebackq delims=" %%x in (`ScriptB`) do set args=%%x
, затем вы можете использовать этот вывод в другой команде:
AnotherScript %args%
Это приведет к тому, что %args%
будет содержать последнюю строку из вывода ScriptB
. Если он возвращает только одну строку, вы можете свернуть это в одну строку:
for /f "usebackq delims=" %%x in (`ScriptB`) do AnotherScript %%x
При использовании вне командного файла вы должны использовать %x
вместо %%x
.
Однако, если ScriptB
возвращает более одной строки, AnotherScript
запускается для каждой из этих строк. Вы можете обойти это - хотя только в пакетном файле - прервав после первой итерации цикла:
for /f "usebackq delims=" %%x in (`ScriptB`) do AnotherScript %%x & goto :eof