Я хотел бы изучить собственный метод командной строки для подсчета строк кода в любом проекте, сохраненном в Windows.

Таким образом, независимо от того, где я работаю или на каком языке / IDE я работаю, знание того, насколько велик проект, может быть достигнуто с помощью команды.

Предполагая, что я хочу указать конкретное расширение файла в целевом каталоге (и всех подкаталогах), что может быть эффективным способом рекурсивного подсчета количества разрывов строк в папке (и подпапках) из командной строки Windows?

5 ответов5

1

Если все, что вам нужно, это общее количество строк из командной строки Windows

(for /r "c:\somewhere" %a in (*.c) do @type "%a")|find /c /v ""
1

Как подсчитать количество строк в файлах в папке рекурсивно?

Используйте следующий пакетный файл (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%

Заметки:

  • Общее количество строк хранится в %lines% .
  • убрать echo ... мере необходимости для тихого бега.

Использование:

countlines filename_expression

Пример:

countlines *.java

выведет следующее:

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

Дальнейшее чтение

0

Это будет считать все строки, поскольку Powershell определяет строки в MyTargetPath

Get-Content (Get-ChildItem -Recurse -Path MyTargetPAth -file).FullName | measure -line

Просто настройте MyTargetPath в первую очередь.

0

Если вы имеете дело с очень большими файлами, то при использовании перенаправления файлов по сравнению с PIPE вы получаете значительный выигрыш в производительности. Тестирование с использованием файла объемом 437 МБ, содержащего 8 895 540 строк. Передача команды поиска заняла 14,6 секунды. Использование перенаправления заняло всего 5,4 секунды. Если вы считаете меньшие файлы, разница, конечно, будет незначительной.

@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%
0

Считаете ли вы инструмент? (А вам известно о https://softwarerecs.stackexchange.com/ ?)

Я использую этот (хотя он может не работать для веб-разработки):

SLOCCount - это простой в использовании инструмент, который подсчитывает исходные строки кода (SLOC). Он автоматически определяет язык (ы) (вкл. C, C++, Ada, Assembly, shell, COBOL, C #, Fortran, Haskell, Java, LISP/Scheme, Perl, PHP, Python, Ruby, SQL). Он также оценивает стоимость и время.

Linux имеет слово и счетчик строк и есть Widows реализация здесь.

Или используйте findstr /R /N "^" file.txt (подробнее на этой странице).

Или вы можете найти ответ на этот чрезвычайно похожий вопрос SuperUser.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .