Arquivo em lote: Store Lines of Command Said sem gravar em um arquivo?
-
22-09-2019 - |
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?
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