컴퓨터2007.05.03 10:30

혼자 공부하기는 쉬워도 그것을 글로 다시 쓰려니 참.. 힘드네요.

우선 간단 스크립트 하나를 설명을 하겠습니다.

다음 스크립트는 C드라이브의 남은공간을 알아내는 스크립트 입니다.
사용되는 기술은 VBscript, WMI 입니다.

㉠ Set objWMIService = GetObject("winmgmts:")
㉡ Set objLogicalDisk = objWMIService.Get("Win32_LogicalDisk.DeviceID='C:'")
㉢ Wscript.Echo objLogicalDisk.FreeSpace



㉠ WMI 를 이용해야 하기때문에 WMI 의 개체로부터 데이터를 가져와서
   objWMIService라는 개체에 값을 넣습니다.

㉡ WMI 에서 가져온 개체는 하나의 값을 갖지 않고 여러값을 가진 뭉탱이이기때문에
 많은 내용들중에서 우리가 알고자하는 디스크정보를 가지고 있는 개체를 호출하는데,
이때 특정 드라이브(C:\) 를 지정해서 값을 objLogicalDisk 로 가져오게 됩니다.

㉢ 젤 쉬운 부분입니다. objLogicalDisk  개체에 대한 남은 공간에 해당하는 값을 얻게 되는것이죠.

결과는 다음과 같습니다.

G:\Data\Script\tmp\VBS>cscript Win32_LogicalDisk.vbs
Microsoft (R) Windows Script Host 버전 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

1186295808

G:\Data\Script\tmp\VBS>



와우 간단하죠?  그런데 값을 보니 너무 크군요.. 저의 C드라이브가 얼마나 용량이 남았는지
바로 감이 안옵니다. 사실 이값은 byte 입니다. 보기 쉬운 방법으로 바꾸어 보겠습니다.

㉢ 부분을 약간 수정하겠습니다.
다음처럼요. (참고, 1024 byte = 1KByte , 1024 KByte = 1 MByte, 1024 MByte = 1 Gbyte)

Wscript.Echo objLogicalDisk.FreeSpace / 1024
Wscript.Echo objLogicalDisk.FreeSpace / 1024 / 1024
Wscript.Echo objLogicalDisk.FreeSpace / 1024 / 1024 / 1024



결과를 보겠습니다.

G:\Data\Script\tmp\VBS>cscript Win32_LogicalDisk.vbs
Microsoft (R) Windows Script Host 버전 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

1158460
1131.30859375
1.10479354858398

G:\Data\Script\tmp\VBS>

단위 표시를 안했더니 보기가 불편하네요.

다음은 제 C디스크 정보입니다.




어렵지 않죠..? ^^

Posted by Zasfe

댓글을 달아 주세요