
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%