Execute a substituição de comandos no prompt de comando do Windows

Execute a substituição de comandos no prompt de comando do Windows

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 2004

Isso 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:21

Isso 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 forcomando, 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).

informação relacionada