Skip to content

PowerShell:Basic

PowerShell 기초

명령어 조회

  • Get-Command - 명령어 목록 조회
  • Get-Help - 명령어 사용법. e.g. Get-Help dir
  • Get-Alias - 명령어 별칭 조회

문자열

확장 문자열("")

문자열 중 변수가 포함되면 , 변수의 값이 문자열에 포함된다.

$var1 = 5
$var2 = "$var1 - $var1"
$var2
# 출력값 : 5 - 5

일반문자열 ('')

문자열 중 변수가 포함되도 변수의 값으로 바뀌지 않는다.

$var1 = 5
$var2 = '$var1 - $var1'
$var2
# 출력값 : $var1 - $var1

이스케이프

파워쉘에서는 백틱(backtick)을 이스케이프 문자로 사용한다.

이스케이프 문자를 사용하면 확장문자열에서 변수의 이름이 값으로 바뀌지 않는다.

$var1 = 5
$var2 = "`$var1 = $var1"
$var2
# 출력값 : $var1 = 5

Replace

$str = 'abc_abc'
$$ = 'xyz'
$1 = '123'

$str -replace 'a(\w)', '$1' #  bc_bc - a를 제외한 키워드 출력
$str -replace 'a(\w)', "$1" # 123c_123c - 변수 해석
$str -replace 'a(\w)', '$$$1' # $bc_$bc
$str -replace 'a(\w)', "$$$1" # xyz123c_xyz123c

조건문

if - elseif - else

$var = 5

if ( $var -eq 0 )
{
   echo "`$var = 0"
}
elseif ($var -eq 1) {
   echo "`$var = 1"
}
else {
   echo "`$var = $var"
}
# 출력값 : $var = 5

switch (다중조건문)

$a = 5
switch($a)
{
    1 { '$a = 1' }
    2 { '$a = 2' }
    3 { '$a = 3' }
    4 { '$a = 4' }
    default { "etc"}
}

비교연산자

연산자

의미

부등호

-eq

Equals(같다)

=

-ne

Does not equal(같지않다)

!=

-gt

Greather than(크다)

>

-lt

Less than(작다)

<

-ge

Greater than or equal to(크거나 같다)

>=

-le

Less than or equal to (작거나 같다)

<=

Wildcardcomparison (와일드카드 비교)

  • -like: 같다.
  • -notlike: 같지 않다.
$var= "Good morning"
$var -like "*morning"
# 출력값 : true

Regularexpression comparison (정규식 비교)

  • -match: 정규식 매칭
  • -notmatch: 정규식 부정 매칭
$var= "Good morning"
$var -match "morning"
# 출력값 : true

반복문

while

$i= 0
while($i -lt 3)
{
    "`$i = $i"
    $i++
}

For

For($i = 0; $i -lt 3; $i++)
{
   '$i = ' + $i
}

Foreach

배열 또는 컬렉션에 있는 모든 항목만큼 반복하는 반복문이다. (For과는 다르게 카운팅을 내부적으로 알아서 해준다)

$array = 1..3     # 1..3은 1,2,3을 갖고있는 int 배열을 만든다.
foreach($a in $array)
{
   $a
}

또는:

$array = 1..3
$array | ForEach-Object { $_ }

$_ 는 파이프라인으로 넘어온 배열 또는 컬렉션의 각각요소들을 의미한다.

배열

빈 배열 생성

$array = @()

값 넣기

$array += 1
$array += 2

콤마사용

$sArray = "aa","bb","cc"
$nArray = 1,2,3,4,5

range 오퍼레이터 사용

$nArray = 1..5

구분자로 구분되어 있는 문자열

$s = "aa,bb,cc,dd"
$array = $s.split(",")

배열의 크기 가져오기

$array.Count

배열 값 읽기

for($i=0;$i -lt $array.Count; $i++)
{
   $array[$i]
}

또는

foreach($item in $array)
{
   $item
}

함수

정의

function add_func {
Param ([int]$parm1 , [int]$parm2)

    return $parm1+$parm2
}

$result = add_func -parm1 10 -parm2 5

또는

function func
{
    echo $args[0]
    echo $args[1]
}

func Hello Powershell

함수의 매개변수와 스크립트 파일의 매개변수는 $args 변수안에 저장된다.

See also

Favorite site