При работе с Bash я могу поместить вывод одной команды в другую команду как так:
my_command `echo Test`
было бы то же самое как
my_command Test
(Очевидно, это - просто непрактический пример.)
Я просто задаюсь вопросом, можно ли сделать то же самое в Пакете.
Вы можете сделать это, сначала перенаправив вывод в файл. Например:
echo zz > bla.txt
set /p VV=<bla.txt
echo %VV%
Вы можете получить аналогичную функциональность, используя скрипты cmd.exe с командой for / f
:
for /f "usebackq tokens=*" %%a in (`echo Test`) do my_command %%a
Да, это вроде как неочевидно (мягко говоря), но это то, что есть.
См. для /?
для получения более подробной информации.
Примечание: я думал, что для использования « echo
» внутри обратных кавычек в команде « for / f
» необходимо использовать « cmd.exe / c echo Test
", поскольку echo
- это внутренняя команда для cmd.exe
, но она работает более естественным образом. Пакетные сценарии Windows всегда меня чем-то удивляют (но обычно не в хорошем смысле).
Прочитайте документацию по команде "for": for /?
К сожалению, я не вошел в Windows, чтобы проверить это самому, но я думаю, что что-то вроде этого может приблизительно показать то, что вы хотите:
for /F %i in ('echo Test') do my_command %i
Вы всегда можете запустить Bash внутри Windows. Я делаю это постоянно с MSYS (гораздо эффективнее, чем Cygwin).