3

Как выполнить подстановки команд в командной строке Windows?

Подстановка команд - очень мощная концепция оболочки UNIX. Он используется для вставки вывода одной команды во вторую команду. Например, с заданием:

$ today=$(date) # starts the "date" command, captures its output
$ echo "$today"
Mon Jul 26 13:16:02 MEST 2004

Это также может быть использовано с другими командами, кроме назначений:

$ echo "Today is $(date +%A), it's $(date +%H:%M)"
Today is Monday, it's 13:21

Это вызывает команду date два раза, первый раз для печати дня недели, второй раз для текущего времени.

Мне нужно знать, чтобы сделать это в командной строке (я уже знаю, что есть способ выполнить что-то подобное, используя как часть команды for , но этот способ гораздо более запутанный и запутанный.

2 ответа2

5

Вы не можете сделать это в DOS.

Если под DOS вы имеете в виду Windows Command Processor cmd.exe вы можете получить вывод команды с помощью for /f:

for /f %%x in ('date') do set "today=%%x"

В зависимости от ваших требований это может быть немного сложнее.

0

Если вам нужна настоящая подстановка команд в стиле Unix, а не более ограниченные возможности, которые вы получаете с cmd.exe , подумайте о приобретении подлинной оболочки Unix для Windows. Два, что я могу предложить, это Cygwin (бесплатно, но не очень хорошо понимает файловую систему Windows) и моя собственная оболочка Hamilton C (коммерческая, но написанная для Windows).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .