Existe algo como Substituição de Comandos na CLI do Windows?

11

No Linux (Bash), há uma maneira de usar um comando como um parâmetro para outro comando, usando back-ticks:

> echo ===== 'time' =====

Isso imprimiria:

===== The current time is: 12:22:34.68 =====

Existe uma maneira de fazer isso em cmd.exe no Windows?

    
por Cristi Diaconescu 27.05.2011 / 11:25

3 respostas

8

Tente isto:

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

Eu sei que isso pode não ser o que você quer, porque você mencionou substituição de comando ... Então pode ser isso:

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

Para mais dicas sobre o uso de usebackq , tente este comando:

for /?
    
por 06.06.2011 / 23:18
4

No Windows, o operador '()' tem um comportamento semelhante ao da substituição do comando Bash.

Este script do Linux:

my_linux_variable=$(ls)
my_alternate_linux_variable='ls'

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

fornece um resultado semelhante ao do Windows PowerShell:

$my_windowsPS_variable = (dir)

$my_windowsPS_variable

e como Windows CMD:

set my_windowsCMD_variable=(dir)
%my_windowsCMD_variable%
    
por 12.08.2015 / 22:28
0

Não, mas esta é a solução alternativa:

D:\>time /t
08:18 PM

D:\>time /t > time.tmp

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

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

Veja também: O equivalente em lote de backticks de Bash .

    
por 30.06.2018 / 21:20