Se tudo que você precisa é a contagem total de linhas da linha de comando do Windows
(for /r "c:\somewhere" %a in (*.c) do @type "%a")|find /c /v ""
Gostaria de aprender um método de linha de comando nativo para contar linhas de código em qualquer projeto salvo no Windows.
Dessa forma, não importa onde eu esteja trabalhando ou qual idioma / IDE eu estou trabalhando, saber o quão grande o projeto é pode ser alcançado com um comando.
Supondo que eu queira direcionar uma extensão de arquivo específica no diretório de destino (e todos os subdiretórios), qual pode ser uma maneira eficaz de contar recursivamente o número de quebras de linha dentro de uma pasta (e subpastas) da linha de comando do Windows?
Se tudo que você precisa é a contagem total de linhas da linha de comando do Windows
(for /r "c:\somewhere" %a in (*.c) do @type "%a")|find /c /v ""
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:
%lines%
. echo ...
conforme apropriado para execução silenciosa. Uso:
countlines filename_expression
Exemplo:
countlines *.java
produzirá o seguinte:
processing file F:\projects\test\foo.java
line count is 10
processing file F:\projects\test\test.java
line count is 106
processing file F:\projects\test\Wheel4Applet.java
line count is 350
total lines is 466
Isso contará todas as linhas como o Powershell define linhas no MyTargetPath
Get-Content (Get-ChildItem -Recurse -Path MyTargetPAth -file).FullName | measure -line
Basta configurar o MyTargetPath primeiro.
Você consideraria uma ferramenta? (E você está ciente do link ?)
Eu uso este (embora possa não funcionar para o desenvolvimento da web):
SLOCCount is an easy-to-use tool that counts Source Lines of Code (SLOC). It auto-determines the language(s) (inc. C, C++, Ada, Assembly, shell, COBOL, C#, Fortran, Haskell, Java, LISP/Scheme, Perl, PHP, Python, Ruby, SQL). It also estimates cost & time.
O Linux tem uma palavra & contador de linha & existe uma implementação da Widows aqui .
Ou use findstr /R /N "^" file.txt
(mais em este página ).
Ou, você pode encontrar sua resposta em questão de SuperUser extremamente semelhante.
Se você estiver lidando com arquivos muito grandes, haverá um considerável ganho de desempenho se você usar o redirecionamento de arquivos versus o uso do PIPE. Teste com um arquivo de 437 MB que tinha 8.895.540 linhas. A tubulação para o comando find demorou 14,6 segundos. Usando o redirecionamento, levou apenas 5,4 segundos. Se você estiver contando arquivos menores, a diferença, obviamente, seria insignificante.
@echo off
set "lines=0"
for /f "usebackq" %%a in ('dir /b /s %1') do (
echo processing file %%a
for /f %%b in ('find /V /C "" ^<"%%a"') do (
echo line count is %%b
set /a lines+=%%b
)
)
echo total lines is %lines%
Tags command-line