Eu quero contar o número de linhas em um arquivo usando lote
Solução específica
De uma linha de comando:
F:\test>for /f "usebackq" %b in ('type abc.csv ^| find "" /v /c') do @echo line count is %b
line count is 1
De um arquivo de lote (countlines.cmd):
@echo off
Setlocal EnableDelayedExpansion
for /f "usebackq" %%b in ('type abc.csv ^| find "" /v /c') do (
echo line count is %%b
)
)
Exemplo:
F:\test>countlines
line count is 1
F:\test>
Solução flexível
Use o seguinte arquivo de lote (countlines.cmd):
@echo off
Setlocal EnableDelayedExpansion
for /f "usebackq" %%a in ('dir /b /s %1') do (
echo processing file %%a
for /f "usebackq" %%b in ('type %%a ^| find "" /v /c') do (
echo line count is %%b
set /a lines += %%b
)
)
echo total lines is %lines%
Notas:
- O número total de linhas é armazenado em
%lines%
. - O arquivo em lote suporta curingas.
- Comandos Tweak
echo ...
conforme apropriado.
Uso:
countlines filename_expression
Exemplo:
F:\test>countlines *.csv
processing file F:\test\abc.csv
line count is 1
processing file F:\test\def.csv
line count is 1
total lines is 2
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- dir - Exibe uma lista de arquivos e subpastas.
- find - Procure uma string de texto em um arquivo & exibir todas as linhas onde ele é encontrado.
- para / f - Comando Loop contra os resultados de outro comando.