'배열'에 해당되는 글 2건

  1. 2007.05.18 [Scripting Guide] - 배열, 그 두번째 이야기
  2. 2007.05.08 [Scripting Guide] - 배열, For each
컴퓨터2007.05.18 10:09

배열은 동일한 성격의 데이터들을 관리하기 쉽도록 하나로 묶은 집합변수 입니다.
< 엠파스 IT사전 중... >

데이터의 집합이기때문에 문자열로 된 데이터( 가나, 다라, 마바... )와 숫자로된
 데이터 ( 1,2,3,4,5....)를 가질수도 있습니다. 또한 다차원을 가진 배열도 만들수 있죠.

' 자빠진김에 쉬어간다고' 말이 나왔으니 차원에 대해서 알아보겠습니다.
1차원은 입니다. 모든 값은 한개씩의 데이터로 묶여있는 집합이고,
2차원은 입니다. 두가지 종류의 값이 묶어있는 집합이죠.
3차원은 공간입니다. 세가지 종류의 값이 만나 이루는 집합입니다.


0차원 점, 1차원 선분, 2차원 사각형, 3차원 정육면체와
4차원 초입방체를 2차원으로 표현한 그림 - 위키백과사전

다시 말하면, 국어의 문장과도 비슷합니다.
1차원은 다음과 같습니다.
1. aaaaa
2. bbbbb
3. ccccc
...

2차원은 다음과 같습니다.
1.1 ddddd
1.2 eeeee
2.1 ggggg
2.2 hhhhh

3차원은 다음과 같습니다.
1.1.1 kkkkk
1.1.2 LLLL
1.2.1 mmmm
1.2.2 nnnn
2.1.1 oooo
2.1.2 pppp
2.2.1 qqqq
2.2.2 RRRR

차이를 아시겠습니까?

3차원은 잘 모르시겠다구요.. 지금은 1차원만 아셔도 됩니다.
알아가실수록 점차 더 많은 차원의 배열을 사용하는 자신을 보게 될테니까요. ^^

자 그럼 이제 연습을 해봅시다.

array01.vbsDim array_String(2)

array_String(0)="가나"
array_String(1)="다라"
array_String(2)="마바"

wscript.echo array_String(0)
wscript.echo array_String(1)
wscript.echo array_String(2)


실행을 하면 다음과 같은 결과가 나오게 됩니다.


왜 그럴까요..

그렇습니다. 배열(집합변수)에 값을 직접 넣고, 그 값을 출력을 한것입니다.


배열에 값을 넣는 방법은 2가지가 있습니다.
방금전의 스크립트처럼 직접 하나하나 값을 추가하는 방법이 있고,
배열로 할당되어 있는 값을 한꺼번에 입력하는 방법이 있습니다.
한꺼번에 입력하는 방법은 바로전 배열 스크립트에서 사용을 하였습니다.

array00.vbsConst CONVERSION_FACTOR = 1048576
computer = "mysonnet" ' 컴퓨터의 이름 입력
Set objWMIService = GetObject("winmgmts://" & computer )  ' WMI 를 이용합니다.
Set colLogicalDisk = objWMIService.InstancesOf("Win32_LogicalDisk")
    ' 전체내용을 가져옵니다.
For Each objLogicalDisk In colLogicalDisk  
    ' 전체내용중 하나하나씩의 값을 가져옵니다.
    FreeMegaBytes = objLogicalDisk.FreeSpace / CONVERSION_FACTOR
    ' 남은 공간을 MegaByte 단위로 환산합니다.
    Wscript.Echo objLogicalDisk.DeviceID & " " & Int(FreeMegaBytes)
    ' 드라이브명(DeviceID) 을 가져옵니다.
Next

-- 결과

Posted by Zasfe
컴퓨터2007.05.08 20:55

이제까지 하나의 값을 가진 변수를 이용한 스크립트를 만들어 보았다.
동시에 여러개의 값을 가진 배열을 이용하면 보다 나은 활용도를 가진 스크립트를 만들수있다.

Const CONVERSION_FACTOR = 1048576
computer = "mysonnet" ' 컴퓨터의 이름 입력
Set objWMIService = GetObject("winmgmts://" & computer )  ' WMI 를 이용합니다.
Set colLogicalDisk = objWMIService.InstancesOf("Win32_LogicalDisk")
    ' 전체내용을 가져옵니다.
For Each objLogicalDisk In colLogicalDisk  
    ' 전체내용중 하나하나씩의 값을 가져옵니다.
    FreeMegaBytes = objLogicalDisk.FreeSpace / CONVERSION_FACTOR
    ' 남은 공간을 MegaByte 단위로 환산합니다.
    Wscript.Echo objLogicalDisk.DeviceID & " " & Int(FreeMegaBytes)
    ' 드라이브명(DeviceID) 을 가져옵니다.
Next


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

A:
C: 962
D: 9788
F: 1828
G: 26523
H:
I:
J: 0

G:\Data\Script\tmp\VBS>



드라이브가 좀 많죠..?
3.5인치 드라이브와 HDD, CDROM 을 포함한 모든 디스크가 나열됩니다.

Posted by Zasfe