Есть ли что-то вроде подстановки команд в Windows CLI?


14

В Linux (Bash) есть способ использовать команду в качестве параметра для другой команды, используя обратные галочки:

> echo ===== `time` =====

Это напечатало бы:

===== Текущее время: 12: 22: 34.68 =====

Есть ли способ сделать это в cmd.exe в Windows?




Также смотрите этот пост ( использование команды doskey из cmd )
misterjaytee

@misterjaytee: Подстановка команд и псевдонимы - разные вещи.
user1686

@grawity - Спасибо за указание на это - Примечание для себя: надо правильно прочитать вопрос, прежде чем отвечать ...
misterjaytee

Ответы:


9

Попробуй это:

echo. ===== %time% =====

Я знаю, что это может быть не то, что вы хотите, потому что вы упомянули подстановку команд ... Так что это может быть так:

for /f "usebackq tokens=*" %i in (`date/t&time/t`) do echo.  ===== %i =====

Для получения дополнительных советов по использованию usebackqпопробуйте эту команду:

for /?

4
Да, for /fэто то , что я искал. Благодарность! На заметку: это так глупо и трудно запомнить (по сравнению с bash). Я должен отказаться от "программирования на летучих мышах" и изучить что-то более продуктивное - возможно, PowerShell?
Кристи Диаконеску

3

В Windows оператор '()' работает аналогично подстановке команды Bash.

Этот скрипт Linux:

my_linux_variable=$(ls)
my_alternate_linux_variable=`ls`

echo $my_linux_command=$(ls)
echo $my_alternate_linux_command=`ls`

дает аналогичный результат как Windows PowerShell:

$my_windowsPS_variable = (dir)

$my_windowsPS_variable

и как Windows CMD:

set my_windowsCMD_variable=(dir)
%my_windowsCMD_variable%

9
Пример Windows CMD неверен. Парены в оболочке cmd просто выполняют команду в подоболочке. Env var установлен на "(dir)" и выполняется во второй строке (когда env var окружен%) - на самом деле это не замена, которую вы хотите.
Давидбак

1
это неверно для окон cmd.exe поведения
JJS

Это PowerShell, тогда как вопрос о cmd.exe
Рауль Салинас-Монтеагудо

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.