폴더의 줄 바꿈을 반복적으로 계산하려면 어떻게 해야 합니까?

폴더의 줄 바꿈을 반복적으로 계산하려면 어떻게 해야 합니까?

Windows에 저장된 모든 프로젝트에서 코드 줄을 계산하는 기본 명령줄 방법을 배우고 싶습니다.

그렇게 하면 내가 어디에서 작업하든, 어떤 언어/IDE로 작업하든 명령을 통해 프로젝트의 규모를 알 수 있습니다.

대상 디렉터리(및 모든 하위 디렉터리)의 특정 파일 확장자를 대상으로 지정한다고 가정할 때 Windows 명령줄에서 폴더(및 하위 폴더) 내의 줄 바꿈 수를 재귀적으로 계산하는 효과적인 방법은 무엇입니까?

답변1

필요한 것은 Windows 명령줄의 총 줄 수뿐입니다.

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

답변2

폴더에 있는 파일의 줄 수를 어떻게 재귀적으로 계산할 수 있나요?

다음 배치 파일(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

추가 자료

  • Windows CMD 명령줄의 AZ 인덱스- Windows cmd 라인과 관련된 모든 것에 대한 훌륭한 참고 자료입니다.
  • 디렉토리- 파일 및 하위 폴더 목록을 표시합니다.
  • 찾다- 파일에서 텍스트 문자열을 검색하고 발견된 모든 줄을 표시합니다.
  • /f에 대해- 다른 명령의 결과에 대해 명령을 반복합니다.

답변3

Powershell이 ​​MyTargetPath에 줄을 정의하면 모든 줄이 계산됩니다.

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

먼저 MyTargetPath를 설정하세요.

답변4

매우 큰 파일을 처리하는 경우 PIPE를 사용하는 것보다 파일 리디렉션을 사용하면 상당한 성능 향상이 있습니다. 8,895,540줄이 포함된 437MB 파일로 테스트했습니다. find 명령에 대한 파이핑에는 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%

관련 정보