In Linux (Bash), there's a way to use a command as a parameter for another command, using back-ticks:
> echo ===== `time` =====
This would print:
===== The current time is: 12:22:34.68 =====
Is there a way to do this in cmd.exe on WIndows ?
In Linux (Bash), there's a way to use a command as a parameter for another command, using back-ticks:
> echo ===== `time` =====
This would print:
===== The current time is: 12:22:34.68 =====
Is there a way to do this in cmd.exe on WIndows ?
Try this:
echo. ===== %time% =====
I know this may not be what you want, because you mentioned command substitution... So this may be it:
for /f "usebackq tokens=*" %i in (`date/time/t`) do @echo. ===== %i =====
For more details about the usage of usebackq try this command:
for /?
No, but here is the workaround:
D:\>time /t
08:18 PM
D:\>time /t > time.tmp
D:\>set /p time=<time.tmp
D:\>echo == %time% ==
== 08:18 PM ==
See also: Batch equivalent of Bash backticks.
In Windows the '( )' operator has a similar behavior as the Bash command substitution.
This Linux script:
my_linux_variable=$(ls)
my_alternate_linux_variable=`ls`
echo $my_linux_command=$(ls)
echo $my_alternate_linux_command=`ls`
gives a similar result as Windows PowerShell:
$my_windowsPS_variable = (dir)
$my_windowsPS_variable
and as Windows CMD:
set my_windowsCMD_variable=(dir)
%my_windowsCMD_variable%