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 em 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 em lotes (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:
- Número total de linhas é armazenado em
%lines%
.
- O arquivo em lote suporta curingas.
- Puxão
echo ...
comandos 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.
- encontrar - Procure uma string de texto em um arquivo & amp; exibir todas as linhas onde ele é encontrado.
- para / f - Comando Loop contra os resultados de outro comando.
$a = (get-content "C:\abc.csv" | measure-object).count
A variável $ a agora contém o número de linhas no seu arquivo.