Pergunta

Windows XP

Meu arquivo em lote executa um comando que possui várias linhas de saída. Como posso contar (e armazenar em uma variável) as linhas de saída sem nunca escrever no disco?

Foi útil?

Solução

Aqui está o script de amostra que contará as linhas na saída do dir comando.

@echo off
setlocal enabledelayedexpansion

set lc=0

for /f "usebackq delims=_" %%i in (`dir`) do (
  echo %%i
  set /a lc=!lc! + 1
)

echo %lc%

endlocal

Você pode substituir dir com seu comando e você pode usar cotações e especificar parâmetros. Você terá que escapar de outros personagens - no entanto - ^, | < > e &.

Se você precisar não apenas contar as linhas, mas também analisar cada linha, talvez seja necessário alterar o delimitador de token de _ (Como usei no exemplo) para outra coisa que não resultará na divisão da linha em vários tokens.

Outras dicas

dir | find /v /c "zzzxxx"

Dá uma contagem de linhas

E enquanto você está nisso, você também pode baixar Pacotes GNU (CoreUtils) para Windows e use a ferramenta WC: por exemplo

dir | wc -l
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top