Efetue a substituição de comandos do prompt de comando do Windows

3

Como você pode executar substituições de comandos no prompt de comando do Windows?

Command substitution is a very powerful concept of the UNIX shell. It is used to insert the output of one command into a second command. E.g. with an assignment:

$ today=$(date) # starts the "date" command, captures its output
$ echo "$today"
Mon Jul 26 13:16:02 MEST 2004

This can also be used with other commands besides assignments:

$ echo "Today is $(date +%A), it's $(date +%H:%M)"
Today is Monday, it's 13:21

This calls the date command two times, the first time to print the week-day, the second time for the current time.

Eu preciso saber para fazer isso no prompt de comando, (eu já sei que existe uma maneira de executar algo assim usando como parte do comando for , mas desta forma é muito mais ofuscado e complicado.

    
por wiggin200 31.10.2012 / 14:40

2 respostas

5

Você não pode fazer isso no DOS.

Se por DOS você quer dizer o Processador de Comandos do Windows cmd.exe , então você pode obter a saída de um comando com for /f :

for /f %%x in ('date') do set "today=%%x"

Dependendo de suas necessidades, isso pode ficar um pouco mais complexo.

    
por 31.10.2012 / 14:50
0

Se você quiser uma substituição de comando no estilo Unix genuína, e não o recurso mais limitado que você obter com cmd.exe , considere adquirir um shell Unix genuíno para Windows. Dois que eu posso sugerir são o Cygwin (gratuito, mas não entende muito bem o sistema de arquivos do Windows) e o meu próprio Shell Hamilton C (comercial, mas escrito para Windows).

    
por 31.10.2012 / 17:39