설치 / 사용기

기 타 [2번 파일] 파티션 사용량에 따라서 작업하기

2022.01.17 09:10

suk 조회:750 추천:11

어제 질문에 올라온 내용입니다. 어제는 바빠서 오늘 질문을 확인했습니다

데이터 용량은 사용량을 말씀하시는 듯 합니다

 

구글 검색이 잘 되지 않는다고 하셨는데요. 검색어에 따라서 결과가 달라지더군요

제 경우는 예전에 파티션 크기를 검색한 경험이 있어서 fso.getdrive vbscript으로 비교적 쉽게 원하는 검색이 되었습니다

 

https://stackoverflow.com/questions/23014986/when-using-getdrive-freespace-is-reporting-incorrect-in-vbscript

Const strDrive = "P:"
intFactor = 1024 ^ 3

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set colItems = objWMIService.ExecQuery("select * from Win32_LogicalDisk where DeviceID='" & strDrive & "'")

For Each objItem in colItems 

    MsgBox "Size: " & FormatNumber(objItem.Size / intFactor)
    MsgBox "Free: " & FormatNumber(objItem.FreeSpace / intFactor)
    MsgBox "Used: " & FormatNumber((objItem.Size - objItem.FreeSpace) / intFactor)

Next

//////////////////////////////////////////////////////////////////////

위 vbs를 다음 bat 파일로 활용했습니다

//////////////////////////////////////////////////////////////////////

 

@prompt $s

@color 1f

@cd /d %~dp0

@title 테스트

@mode con cols=170 lines=170

@setlocal enabledelayedexpansion

 

@reg query HKU\S-1-5-20>nul || (PowerShell start -verb runas '%0'&exit)

 

set Drive=C:

 

  >"!tmp!\tmp.vbs" echo.Const strDrive = "%Drive%"

>>"!tmp!\tmp.vbs" echo.intFactor = 1024 ^^ 3

>>"!tmp!\tmp.vbs" echo.Set objWMIService = GetObject^("winmgmts:\\.\root\CIMV2"^) 

>>"!tmp!\tmp.vbs" echo.Set colItems = objWMIService.ExecQuery^("select * from Win32_LogicalDisk where DeviceID='" ^& strDrive ^& "'"^)

>>"!tmp!\tmp.vbs" echo.For Each objItem in colItems 

>>"!tmp!\tmp.vbs" echo.    Wscript.Echo ""

>>"!tmp!\tmp.vbs" echo.    Wscript.Echo "전체 크기 [GB] = " ^& FormatNumber^(objItem.Size / intFactor^)

>>"!tmp!\tmp.vbs" echo.    Wscript.Echo ""

>>"!tmp!\tmp.vbs" echo.    Wscript.Echo "남은 크기 [GB] = " ^& FormatNumber^(objItem.FreeSpace / intFactor^)

>>"!tmp!\tmp.vbs" echo.    Wscript.Echo ""

>>"!tmp!\tmp.vbs" echo.    Wscript.Echo "사용 크기 [GB] = " ^& FormatNumber^(^(objItem.Size - objItem.FreeSpace^) / intFactor^)

>>"!tmp!\tmp.vbs" echo.Next

 

cscript //nologo "!tmp!\tmp.vbs

 

for /f "skip=5 tokens=5 delims=. " %%a in ('cscript //nologo "!tmp!\tmp.vbs"') do set used=%%a

 

if %used% geq 10 goto :next

 

실행

 

:next

 

@del /f/a/q "!tmp!\tmp.vbs"

 

@echo.

@echo.

@echo.=========================================================================================

@echo. 모든 작업을 완료했습니다

@echo.=========================================================================================

@echo.     

@pause

@exit

 

//////////////////////////////////////////////////////////////////////

bat 파일로 실행해봤습니다

파티션 사용량 10GB 미만일 때만 작업 실행하기 - bat 구문만 테스트 2022-01-17_075707.jpg

42GB 사용중이라서 건너뛰게 됩니다

그래서 현재 상황에서 실행 화면이 나오게 하려고 기준을 43 GB로 올려서 실행해봤습니다

파티션 사용량 10GB 미만일 때만 작업 실행하기 - bat 구문만 테스트 2022-01-17_075904.jpg

건너뛰지 않고, 실행 쪽으로 이동하는지 구문 테스트입니다. 그래서 테스트는 성공적입니다

 

질문하신 분의 댓글을 보면 1회용이 아니라 계속 반복해서 파티션 사용량을 확인하셔서 10GB 넘어가면 실행 중지하시려는 것 같기도 합니다

그런 경우이시면 위 구문에 timeout /t 숫자 [초]와 goto로 반복 하시면 됩니다. 이 방법은 아래 bat 파일을 참고로 하시면 됩니다

 

저는 예전부터 C드라이브에 남은 용량이 10GB 미만이면 알림 메시지 뜨게 해놨습니다

그 구문을 오늘 검색된 내용으로 변경하여 bat 파일로 실행해봤습니다 [이 bat 파일 구문이 사용기에 올라가지 않네요;;]

C드라이브 10GB 미만으로 남아 있는 경우, 알림 메시지 나오는 bat 실행 2022-01-17_080902.jpg

1분 간격으로 계속 확인하게 해놨습니다

---------------------------------------------------------------

추가: 2022.01.17 월요일 오전 11:47

천단위 넘어가면 [대략 TB] 코머 , 표시가 됩니다. 그래서 숫자 비교할 때 튕기네요;;

그래서 남은 크기는 코머 , 표시가 되지 않도록 했습니다. 다른 파티션 크기 [전체 크기와 사용 크기]는 코머 , 표시됩니다

C드라이브 10GB 미만 알림2 - TB까지 고려.bat - U드라이브 사용량으로 테스트 2022-01-17_114425.jpg

위에 bat 화면은 C:은 크기가 적어서 2TB U:의 사용량으로 코머 , 테스트했습니다

 

C:의 남은 크기와 시간 간격 등은 수정하여 사용하시면 됩니다

2번째 파일: C드라이브 10GB 미만 알림2 - TB까지 고려.bat

2022.01.17 월요일 오후 12:32 - 2번째 파일을 다시 수정 - 오늘 소소한 수정 자주하네요;; 수정했다고 말하기도 그런 사소한 수정입니다

번호 제목 글쓴이 조회 추천 등록일
[공지] 사용기/설치기 이용안내 gooddew - - -
3086 소프트웨어| ● 수정사용기)레인미터 스킨/rainmeter LuaCalendar 일정 ... [4] shimspeed 1130 5 01-18
3085 기 타| StartIsBack 설정은 수동으로 마음대로 하는것이 편하네요.. [23] 왕초보 1189 9 01-18
3084 윈 도 우| 22000.438_&kb5010795_자동업데이트 [3] 4k8k 681 2 01-18
3083 윈 도 우| Windows 11 (22000.438) 2022.01.18 대역 외 [25] suk 1149 27 01-18
3082 윈 도 우| Windows 10 (1904x.1469) 2022.01.18 대역 외 [26] suk 1375 35 01-18
3081 기 타| 풍년의 깜부기 P2 [307] 집앞의_큰 2262 232 01-18
3080 기 타| 요즘 PE와 다른 샛길... [124] DengJang 1515 92 01-18
3079 윈 도 우| Ventoy + Windows + Linux Mulibooting 영상 [15] 메인보드 613 9 01-18
3078 윈 도 우| Windows10/11 21H2 1469/438 VPN 패치 적용 [34] 내꼬 1097 27 01-18
3077 기 타| R-DriveImage [104] 첨임다 2040 79 01-19
3076 기 타| Wim안에 PortableApps 있는경우 설정 저장하기를 하여 보았... [9] 왕초보 823 14 01-19
3075 소프트웨어| BackupperPE 6.8.0 장착기? [60] 집앞의_큰 1204 59 01-19
3074 소프트웨어| ● 2차 수정)레인미터 스킨/Calendar_Google_holiday skin ... [16] shimspeed 1288 10 01-19
3073 기 타| Wim 파일에 PC Clinic.ini 를 바로 저장하기를 하여 보았습... [13] 왕초보 856 11 01-19
3072 윈 도 우| 세르게이 PE를 DVD에 굽기 전에..... [10] 4k8k 923 5 01-19
3071 기 타| 12세대 드라이브 문자가 자동 할당되지 않을 때 [21] suk 1239 28 01-20
3070 소프트웨어| 플루이드 [1] 말보로맨 610 0 01-20
3069 기 타| Wim 파일에 PC Clinic.ini 를 저장하기를 업데이트 하였습... [14] 왕초보 789 12 01-20
3068 기 타| 숨김 드라이브 문자 할당 - 우클릭 메뉴 (KJ님 빌더 PE) [21] DengJang 1272 18 01-20
3067 기 타| Rainmeter 시계 색깔조립 해 봤습니다. [5] Nayu 1024 12 01-20
XE1.11.6 Layout1.4.8