![Выполнить замену команд в командной строке Windows](https://rvso.com/image/1336275/%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D1%8C%20%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D1%83%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%20%D0%B2%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5%20Windows.png)
Как выполнить замену команд в командной строке 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).