11

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

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

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

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

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

3 ответа3

8

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

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

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

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

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

for /?
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%
0

Нет, но вот обходной путь:

D:\>time /t
08:18 PM

D:\>time /t > time.tmp

D:\>set /p time=<time.tmp

D:\>echo == %time% ==
== 08:18 PM ==

Смотрите также: Пакетный эквивалент бэкков Bash.

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