Выполнить замену команд в командной строке Windows

Выполнить замену команд в командной строке Windows

Как выполнить замену команд в командной строке 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, но этот способ гораздо более запутанный и запутанный).

решение1

В DOS этого сделать нельзя.

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

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

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

решение2

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

Связанный контент