Friday, May 26, 2006
[VBScript-VBS] 하드디스크 남은 용량을, 퍼센트로 표시하는, 비주얼 베이직 스크립트
하드디스크 등록정보를 보면, 남은 용량(사용 가능한 용량)과 함께 파이 그래프가 나오는데, 남은 용량 비율이 퍼센트로 나오지 않아서 아주 불편합니다. 윈도우2000은 물론 윈도우XP에서도 나오지 않았습니다.
마이크로소프트라는 회사 내에는, 어떻게 하면 사용자들을 불편하게 할까 하고 궁리하는 부서가 따로 있는 것 같습니다. 아무리 생각해 봐도 그런 결론밖에는 나오지 않았습니다.
그래서,
비주얼 베이직 스크립트를 사용해서 간단하게, 남은 용량을 퍼센트로 표시하는 유틸리티를 만들어 보았습니다.
컴퓨터에 물리적 하드 혹은 논리적 하드(파티션)가 몇 개 있는지 자동으로 파악하여, 모든 하드의 용량 정보를 표시합니다.
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
위의 코드를 DiskFree.vbs 등의 이름으로 하드에 저장하고 클릭하면 다음과 같은 창이 나오며, 하드 용량에 대한 정보가 표시됩니다. 요즘 하드는 최소한 수십 기가가 넘기 때문에, GB 즉 기가 바이트로 용량을 표시했습니다. 1024MB(메가바이트)가 1GB입니다:
왼쪽 위의 창은 윈도우2000에서 이 스크립트를 실행시킨 화면입니다. 하드가 C: D: E: 세 개이기 때문에 3개가 모두 나왔습니다.
오른쪽의 작은 창은 윈도우XP에서 실행시킨 것입니다. XP가 깔린 PC는 지금 C드라이브 하나만 붙어 있기 때문에 하나만 나타나고 있습니다.
맨아래쪽 그림은 위의 코드가 든 파일을 바탕화면에 놓고 마우스로 클릭하여 실행시키는 장면입니다.
※ VBScript 는 비주얼 베이직 컴파일러나 오피스가 없어도 실행됩니다. 비주얼 베이직 자체와는 관련이 없고, 서로 독립적인 언어입니다.
▶▶ 윈도우XP] 하드 디스크 남은 용량, 드라이브 사이즈 보는 방법; Windows HDD Disk Free Size
마이크로소프트라는 회사 내에는, 어떻게 하면 사용자들을 불편하게 할까 하고 궁리하는 부서가 따로 있는 것 같습니다. 아무리 생각해 봐도 그런 결론밖에는 나오지 않았습니다.
그래서,
비주얼 베이직 스크립트를 사용해서 간단하게, 남은 용량을 퍼센트로 표시하는 유틸리티를 만들어 보았습니다.
컴퓨터에 물리적 하드 혹은 논리적 하드(파티션)가 몇 개 있는지 자동으로 파악하여, 모든 하드의 용량 정보를 표시합니다.
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' DiskFree v1.0
'
' (c)2005
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Const K = 1024
Main
Sub Main
Const DriveTypeRemovable = 1
Const DriveTypeFixed = 2
Const DriveTypeNetwork = 3
Const DriveTypeCDROM = 4
Const DriveTypeRAMDisk = 5
Dim i, fso, Str, objDriveList
Set fso = CreateObject("Scripting.FileSystemObject")
Set objDriveList = fso.Drives
For Each i in objDriveList
If i.DriveType = DriveTypeFixed Then
Str = Str & myDiskFreeCalc(i)
End If
Next
MsgBox Str,,"DiskFree"
End Sub
Function myDiskFreeCalc(strDrivePath)
Dim fso, objDrive, Str
Dim TotalSizeBytes, TotalSizeGB
Dim DiskUsedBytes, DiskUsedGB
Dim DiskFreeBytes, DiskFreeGB
Dim DiskFreePercentage
Set fso = CreateObject("Scripting.FileSystemObject")
Set objDrive = fso.GetDrive(fso.GetDriveName(strDrivePath))
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
TotalSizeBytes = FormatNumber(objDrive.TotalSize, 0)
TotalSizeGB = FormatNumber(TotalSizeBytes / (K * K * K), 2)
DiskFreeBytes = FormatNumber(objDrive.FreeSpace, 0)
DiskFreeGB = FormatNumber(DiskFreeBytes / (K * K * K), 2)
DiskUsedBytes = FormatNumber( TotalSizeBytes - DiskFreeBytes, 0)
DiskUsedGB = FormatNumber((TotalSizeBytes - DiskFreeBytes) / (K * K * K), 2)
DiskFreePercentage = FormatNumber( (DiskFreeBytes / TotalSizeBytes) * 100, 2)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Str = "[" & UCase(strDrivePath) & "] " & DiskFreePercentage & "% free" _
& vbCrLf
Str = Str & "TotalSize: " & TotalSizeGB & " GB" & vbCrLf
Str = Str & "Disk Used: " & DiskUsedGB & " GB" & vbCrLf
Str = Str & "Disk Free: " & DiskFreeGB & " GB" & vbCrLf & vbCrLf
myDiskFreeCalc = Str
End Function
'
' DiskFree v1.0
'
' (c)2005
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Const K = 1024
Main
Sub Main
Const DriveTypeRemovable = 1
Const DriveTypeFixed = 2
Const DriveTypeNetwork = 3
Const DriveTypeCDROM = 4
Const DriveTypeRAMDisk = 5
Dim i, fso, Str, objDriveList
Set fso = CreateObject("Scripting.FileSystemObject")
Set objDriveList = fso.Drives
For Each i in objDriveList
If i.DriveType = DriveTypeFixed Then
Str = Str & myDiskFreeCalc(i)
End If
Next
MsgBox Str,,"DiskFree"
End Sub
Function myDiskFreeCalc(strDrivePath)
Dim fso, objDrive, Str
Dim TotalSizeBytes, TotalSizeGB
Dim DiskUsedBytes, DiskUsedGB
Dim DiskFreeBytes, DiskFreeGB
Dim DiskFreePercentage
Set fso = CreateObject("Scripting.FileSystemObject")
Set objDrive = fso.GetDrive(fso.GetDriveName(strDrivePath))
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
TotalSizeBytes = FormatNumber(objDrive.TotalSize, 0)
TotalSizeGB = FormatNumber(TotalSizeBytes / (K * K * K), 2)
DiskFreeBytes = FormatNumber(objDrive.FreeSpace, 0)
DiskFreeGB = FormatNumber(DiskFreeBytes / (K * K * K), 2)
DiskUsedBytes = FormatNumber( TotalSizeBytes - DiskFreeBytes, 0)
DiskUsedGB = FormatNumber((TotalSizeBytes - DiskFreeBytes) / (K * K * K), 2)
DiskFreePercentage = FormatNumber( (DiskFreeBytes / TotalSizeBytes) * 100, 2)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Str = "[" & UCase(strDrivePath) & "] " & DiskFreePercentage & "% free" _
& vbCrLf
Str = Str & "TotalSize: " & TotalSizeGB & " GB" & vbCrLf
Str = Str & "Disk Used: " & DiskUsedGB & " GB" & vbCrLf
Str = Str & "Disk Free: " & DiskFreeGB & " GB" & vbCrLf & vbCrLf
myDiskFreeCalc = Str
End Function
위의 코드를 DiskFree.vbs 등의 이름으로 하드에 저장하고 클릭하면 다음과 같은 창이 나오며, 하드 용량에 대한 정보가 표시됩니다. 요즘 하드는 최소한 수십 기가가 넘기 때문에, GB 즉 기가 바이트로 용량을 표시했습니다. 1024MB(메가바이트)가 1GB입니다:
왼쪽 위의 창은 윈도우2000에서 이 스크립트를 실행시킨 화면입니다. 하드가 C: D: E: 세 개이기 때문에 3개가 모두 나왔습니다.
오른쪽의 작은 창은 윈도우XP에서 실행시킨 것입니다. XP가 깔린 PC는 지금 C드라이브 하나만 붙어 있기 때문에 하나만 나타나고 있습니다.
맨아래쪽 그림은 위의 코드가 든 파일을 바탕화면에 놓고 마우스로 클릭하여 실행시키는 장면입니다.
※ VBScript 는 비주얼 베이직 컴파일러나 오피스가 없어도 실행됩니다. 비주얼 베이직 자체와는 관련이 없고, 서로 독립적인 언어입니다.
▶▶ 윈도우XP] 하드 디스크 남은 용량, 드라이브 사이즈 보는 방법; Windows HDD Disk Free Size
tag: batch
배치파일 | DOS CMD BATCH .BAT
tag: windows
윈도우 | Windows 7 | Windows XP | Windows 2000
<< Home