In Linux (Bash), c'è un modo per usare un comando come parametro per un altro comando, usando back-tick:
> echo ===== `time` =====
Questo stamperebbe:
===== L'ora corrente è: 12: 22: 34.68 =====
C'è un modo per farlo in cmd.exe su Windows?
In Linux (Bash), c'è un modo per usare un comando come parametro per un altro comando, usando back-tick:
> echo ===== `time` =====
Questo stamperebbe:
===== L'ora corrente è: 12: 22: 34.68 =====
C'è un modo per farlo in cmd.exe su Windows?
Risposte:
Prova questo:
echo. ===== %time% =====
So che questo potrebbe non essere quello che vuoi, perché hai menzionato la sostituzione dei comandi ... Quindi potrebbe essere questo:
for /f "usebackq tokens=*" %i in (`date/t&time/t`) do echo. ===== %i =====
Per ulteriori suggerimenti sull'uso di usebackq
provare questo comando:
for /?
for /f
è quello che stavo cercando. Grazie! Una nota a margine: è così clandestino e difficile da ricordare (rispetto al modo bash). Dovrei rinunciare alla "programmazione dei pipistrelli" e imparare qualcosa di più produttivo - PowerShell forse?
In Windows l'operatore '()' ha un comportamento simile alla sostituzione del comando Bash.
Questo script Linux:
my_linux_variable=$(ls)
my_alternate_linux_variable=`ls`
echo $my_linux_command=$(ls)
echo $my_alternate_linux_command=`ls`
dà un risultato simile a Windows PowerShell:
$my_windowsPS_variable = (dir)
$my_windowsPS_variable
e come Windows CMD:
set my_windowsCMD_variable=(dir)
%my_windowsCMD_variable%
No, ma ecco la soluzione alternativa:
D:\>time /t
08:18 PM
D:\>time /t > time.tmp
D:\>set /p time=<time.tmp
D:\>echo == %time% ==
== 08:18 PM ==
Vedi anche: Equivalente in serie di backtick Bash .