일괄 처리 통계 폴 더 에 있 는 모든 파일 의 수량 과 총 크기 의 bat

저 는 최근 에 컴퓨터 가 왜 디스크 공간 이 점점 작 아 지 는 지 모 르 겠 습 니 다.그리고 시간 이 지나 면 2,3 GB 의 공간 이 방출 될 것 입 니 다.제 가 감시 하고 싶 은 것 을 사용 하여 그 폴 더 에서 발생 한 파일 로 제 저장 공간 을 차지 하 는 지 보고 싶 습 니 다.저 는 층 별로 감시 하고 최종 적 으로 원인 을 찾 고 싶 습 니 다.
인터넷 에서 명령 행 을 찾 아 지정 한 폴 더 디 렉 터 리 의 크기 를 표시 하 는 일괄 처리 프로그램 을 찾 았 으 나 마음 에 들 지 않 아 제 가 사용 하기에 적합 하지 않 은 것 같 습 니 다.
첫 번 째 프로그램 은 어떤 폴 더 아래 의 파일 크기 를 표시 할 수 있 지만 층 별로 표시 하고 싶 지만 제 요 구 를 만족 시 킬 수 없습니다.프로그램 은 다음 과 같 습 니 다.

@echo off
echo.
set /p dirPath=please input folder path:
set /a s=1024*1024*1024
for /f "tokens=3 delims= " %%i in ('dir /s /a /-c "%dirPath%" ^|findstr    ') do (set z=%%i)
echo.
echo    :%dirPath%
set d=bit
if %z% gtr 1024 set /a "z>>=10"&set d=KB
if %z% gtr 1024 set /a "z>>=10"&set d=MB
if %z% gtr 1024 set /a "z>>=10"&set d=GB

echo      :%z% %d%&echo.
if %z% LSS %s% echo         1G
pause>nul
두 번 째 프로그램의 경우 현재 폴 더 아래 의 등급 디 렉 터 리 를 표시 할 수 있 지만 다음 폴 더 의 크기 를 순환 하지 않 습 니 다.프로그램 은 다음 과 같 습 니 다.

@echo off
setlocal enabledelayedexpansion
(for /d %%a in (C:\KuGou\*) do (
  set/a n=z=0
  pushd "%%a"
  for %%b in (*.*.) do (
    set/a n+=1,z+=%%~zb
  )
  set/a "z>>=20"
  popd
  echo;%%a [!n! !z!M]
))>    .txt
pause
위의 두 프로그램 을 통 해 저 는 통합 을 했 습 니 다.하나의 프로그램 을 합성 하려 고 합 니 다.제 가 필요 로 하 는 프로그램 과 차이 가 많 지 않 을 것 입 니 다.한다 면 하 겠 습 니 다.다음은 제 프로그램 을 보 겠 습 니 다.

@echo off
setlocal enabledelayedexpansion
echo.
set /p dirPath=please input folder path:
echo %dirPath%
echo.
for /d %%a in (%dirPath%\*) do (
  set/a zz=0
  for /f "tokens=3 delims= " %%t in ('dir /s /a /-c "%%a" ^|findstr    ') do (
  set zz=%%t
  )  
set d=bit
if !zz! GEQ 1024 set /a "z1=!zz!>>10"&set d=KB
if !z1! GEQ 1024 set /a "z2=!z1!>>10"&set d=KB
if !z2! GEQ 1024 set /a "z3=!z2!>>10"&set d=KB
echo    :%%a ,   :!z3!GB = !z2!MB = !z1!!d!
)
for /f "tokens=1-4 delims= " %%i in ('dir /a /-c %dirPath% ^|findstr    ') do (
  set/a ss=%%k
  set/a ss>>=10,d=bit
  
  if !ss! GEQ 1024 set /a "s1=!ss!>>10"&set d=KB
  if !s1! GEQ 1024 set /a "s2=!s1!>>10"&set d=KB
  if !s2! GEQ 1024 set /a "s3=!s2!>>10"&set d=KB
  echo  "%dirPath%"      %%i %%j ,     :!s3!GB = !s2!MB = !s1!!d!
  )

pause
코드 4:실행 후 통계 폴 더 에 모든 파일 과 모든 하위 폴 더 에 있 는 파일,하위 폴 더 에 있 는 하위 폴 더 에 있 는 파일,하위 폴 더 에 있 는 하위 폴 더 에 있 는 파일 을 포함 합 니 다.

@echo off
setlocal enabledelayedexpansion
(for /f “delims=” %%i in ('dir /s/b/l/ad') do (
cd "%%~fsi"
set/a a=0,n=0
for /f "delims=" %%a in ('dir /b/l/aa') do (
set/a a+=1,n+=%%~za 2>nul
)
set/a n/=1048576
echo.%%~fi : !a! : !n!MB
)) >    .txt
pause
MB 는 작은 숫자 를 지원 하지 않 습 니 다.파일 이 너무 작 으 면 0 으로 표 시 됩 니 다.삭제 할 수 있 습 니 다.set/a n/=1048576MB 를 삭제 하고 바이트 로 변경 합 니 다.
또는 KB 를 사용 하여

set/a n/=1024
echo.%%~fi : !a! : !n!KB
코드 5:순수 일괄 처리 로 디지털 계산 에 제한 을 받 습 니 다.이 문 제 는 일괄 처리 로 awk 와 결합 하 는 것 이 간단 합 니 다.
끌 어서 실행 해 야 합 니 다.

# & cls & (for /f "delims=" %%a in ('dir/a-d/b/s %1') do @echo %%~za) | gawk -v path=%~n1 -f %0 >con & pause & exit
{sum+=$0}
END{
	printf "%s       : 
%.2f byte
%.2f MB
%.2f GB
",path,sum,sum/1024/1024,sum/1024/1024/1024 }
gawk 4.1.0 다운로드 주소:https://www.jb51.net/softs/515570.html
프로그램 도 설명 이 많 지 않 습 니 다.여러분 은 한눈 에 알 수 있 습 니 다.다른 사람의 물건 을 조합 하여 호출 방법 만 알 수 있 습 니 다.
1:더 블 클릭 으로 실행 합 니 다.알림 에 따라 만 들 폴 더 경 로 를 입력 하 십시오.
2:시작--실행--cmd,그리고 bat 파일 을 저장 할 곳 을 찾 아 bat 파일 이름 을 직접 입력 하면 실행 할 수 있 습 니 다.
3.파일 에 직접 출력 할 수도 있 습 니 다.예 를 들 어 C:\>f3.bat>111.txt 가 돌아 오 면 커서 가 반 짝 거 리 는 것 만 볼 수 있 습 니 다.이때 폴 더 경 로 를 직접 입력 하면 됩 니 다.
설명:파일 에 출력 하 는 형식 으로 마지막 으로 코드 의 마지막 pause 줄(일시 정지 코드)을 삭제 하면 프로그램 이 실 행 된 후에 자동 으로 종료 되 고 프로그램 에 머 물 지 않 습 니 다.
상기 두 프로그램 은'일괄 처리 의 집'에서 나 왔 고 주 소 는 아래 에서 편리 한 후에 추적 하고 조회 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기