![Execute a substituição de comandos no prompt de comando do Windows](https://rvso.com/image/1336275/Execute%20a%20substitui%C3%A7%C3%A3o%20de%20comandos%20no%20prompt%20de%20comando%20do%20Windows.png)
Como você pode realizar substituições de comandos no prompt de comando do Windows?
A substituição de comandos é um conceito muito poderoso do shell UNIX. É usado para inserir a saída de um comando em um segundo comando. Por exemplo, com uma tarefa:
$ today=$(date) # starts the "date" command, captures its output
$ echo "$today"
Mon Jul 26 13:16:02 MEST 2004Isso também pode ser usado com outros comandos além das atribuições:
$ echo "Today is $(date +%A), it's $(date +%H:%M)"
Today is Monday, it's 13:21Isso chama o comando date duas vezes, a primeira para imprimir o dia da semana e a segunda para a hora atual.
Preciso saber como fazer isso no prompt de comando (já sei que existe uma maneira de fazer algo assim usando como parte do for
comando, mas essa forma é muito mais ofuscada e complicada.
Responder1
Você não pode fazer isso no DOS.
Se por DOS você quer dizer o processador de comandos do Windows cmd.exe
, você pode obter a saída de um comando com for /f
:
for /f %%x in ('date') do set "today=%%x"
Dependendo dos seus requisitos, isso pode ficar um pouco mais complexo.
Responder2
Se você deseja uma substituição de comando genuína no estilo Unix, e não o recurso mais limitado que você obtém cmd.exe
, considere obter um shell Unix genuíno para Windows. Dois que posso sugerir sãoCygwin(gratuito, mas não entende muito bem o sistema de arquivos do Windows) e o meu próprioConcha Hamilton C(comercial, mas escrito para Windows).