Armazena a saída do comando do Windows no arquivo de lote

5

Eu preciso armazenar a saída de uma linha de comando em uma variável. Como posso fazer isso?

    
por Mohammad AL-Rawabdeh 10.03.2011 / 14:36

3 respostas

7

Forneceu um arquivo de lote simples test.cmd com o conteúdo:

echo jscott

Você pode definir a saída em uma variável com a seguinte linha de comando:

FOR /F "tokens=*" %a in ('test.cmd') do SET OUTPUT=%a

Usado na linha de comando assim:

C:\>SET OUTPUT
Environment variable OUTPUT not defined
C:\>FOR /F "tokens=*" %a in ('test.cmd') do SET OUTPUT=%a
C:\>ECHO %OUTPUT%
jscott

Se você quiser usar o FOR em um arquivo de lote, em vez da linha de comando, precisará alterar %a para %%a .

    
por 10.03.2011 / 14:55
3

É assim que eu faço isso:

vol c: > result.txt
set /p DATA=<result.txt
echo %DATA%
del result.txt

Se result.txt tiver mais de uma linha, somente a linha superior do arquivo será usada para% DATA%. Você também pode transformar o result.txt em uma variável, como% OUTPUT%.

    
por 10.03.2011 / 15:14
0

Você pode canalizar o comando para algo como:

command > somefile

O que você vê acima envia a saída para um arquivo nomeado. Se o arquivo não existir, ele cria um. Substitui o arquivo existente E você também pode fazer isso:

command >> somefile

Isso acrescenta a saída ao conteúdo de um arquivo nomeado ou cria um arquivo, se não existir nenhum

Veja também aqui: Usando operadores de redirecionamento de comandos

    
por 10.03.2011 / 14:44