● 명령어 조회
① Get-Command : 명령어 목록 조회
② Get-Help : 명령어 사용법 ex) Get-Help dir
③ Get-Alias : 명령어 별칭 조회
● 문자열
○ 확장 문자열("") - 문자열 중 변수가 포함되면 , 변수의 값이 문자열에 포함된다.
1
2
3
4
|
$var1 = 5
$var2 = "$var1 - $var1"
$var2
# 출력값 : 5 - 5
|
cs |
○ 일반문자열('') - 문자열 중 변수가 포함되도 변수의 값으로 바뀌지 않는다.
1
2
3
4
|
$var1 = 5
$var2 = '$var1 - $var1'
$var2
# 출력값 : $var1 - $var1
|
cs |
※ 파워쉘에서는 백틱(backtick)을 이스케이프 문자로 사용한다.
이스케이프 문자를 사용하면 확장문자열에서 변수의 이름이 값으로 바뀌지 않는다.
● 조건문
○ if - elseif - else
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$var = 5
if ( $var -eq 0 )
{
echo "`$var = 0"
}
elseif ($var -eq 1) {
echo "`$var = 1"
}
else {
echo "`$var = $var"
}
# 출력값 : $var = 5
|
cs |
○ switch (다중조건문)
1
2
3
4
5
6
7
8
9
|
$a = 5
switch($a)
{
1 { '$a = 1' }
2 { '$a = 2' }
3 { '$a = 3' }
4 { '$a = 4' }
default { "etc"}
}
|
cs |
※ 비교연산자
연산자 | 의미 | 부등호 |
-eq | Equals(같다) | = |
-ne | Does not equal(같지않다) | != |
-gt | Greather than(크다) | > |
-lt | Less than(작다) | < |
-ge | Greater than or equal to(크거나 같다) | >= |
-le | Less than or equal to (작거나 같다) | <= |
▷ -like : Wildcardcomparison(와일드카드 비교) ↔ -notlike ...
1
2
3
|
$var= "Good morning"
$var -like "*morning"
# 출력값 : true
|
cs |
▷ -match : Regularexpression comparison(정규식 비교) ↔ -notmatch ...
1
2
3
|
$var= "Good morning"
$var -match "morning"
# 출력값 : true
|
cs |
해당 조건에 not이 들어가면 부정을 말합니다.
● 반복문
○ while
1
2
3
4
5
6
|
$i= 0
while($i -lt 3)
{
"`$i = $i"
$i++
}
|
cs |
○ For
1
2
3
4
|
For($i = 0; $i -lt 3; $i++)
{
'$i = ' + $i
}
|
cs |
○ Foreach - 배열 또는 컬렉션에 있는 모든 항목만큼 반복하는 반복문이다.
(For과는 다르게 카운팅을 내부적으로 알아서 해준다)
1
2
3
4
5
|
$array = 1..3 # 1..3은 1,2,3을 갖고있는 int 배열을 만든다.
foreach($a in $array)
{
$a
}
|
cs |
1
2
|
$array = 1..3
$array | ForEach-Object { $_ }
|
cs |
$_ 는 파이프라인으로 넘어온 배열 또는 컬렉션의 각각요소들을 의미한다.
● 배열
① 빈 배열 생성
1
|
$array = @()
|
cs |
②. 값 넣기
1
2
|
$array += 1
$array += 2
|
cs |
③.콤마사용
1
2
|
$sArray = "aa","bb","cc"
$nArray = 1,2,3,4,5
|
cs |
④. range 오퍼레이터 사용
1
|
$nArray = 1..5
|
cs |
⑤. 구분자로 구분되어 있는 문자열
1
2
|
$s = "aa,bb,cc,dd"
$array = $s.split(",")
|
cs |
⑥. 배열의 크기 가져오기
1
|
$array.Count
|
cs |
⑦. 배열 값 읽기
◎ for
1
2
3
4
|
for($i=0;$i -lt $array.Count; $i++)
{
$array[$i]
}
|
cs |
◎ foreach
1
2
3
4
|
foreach($item in $array)
{
$item
}
|
cs |
● 함수
○ 정의
1
2
3
4
5
6
7
|
function add_func {
Param ([int]$parm1 , [int]$parm2)
return $parm1+$parm2
}
$result = add_func -parm1 10 -parm2 5
|
cs |
1
2
3
4
5
6
7
|
function func
{
echo $args[0]
echo $args[1]
}
func Hello Powershell
|
cs |
※ 함수의 매개변수와 스크립트 파일의 매개변수는
$args 변수안에 저장된다.
● 자동 변수
1. 이전 명령줄의 마지막 토큰 (
$
? )
2. 마지막 명령의 부울 상태 (
$
^ )
3. 이전 명령줄의 첫 번째 토큰 (
$
_ )
4. 현재 파이프라인 개체 (
$
_ )
예시1
Get-Date
$$
→
Get-Date
$
? → true
예시2
Get-Date
$
^ -->
Get-Date
예시3
$
array = @(1,2,3)
$
array | % { echo
$
_ }
● replace 확장 기능
1
2
3
4
5
6
7
8
|
$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
|
cs |
'OS-서버 > 윈도우' 카테고리의 다른 글
Powershell 원격 제어 (0) | 2018.03.20 |
---|---|
Powershell Alias (0) | 2018.03.20 |
system32 폴더안에 파일 변경권한 수정 (0) | 2017.10.02 |
윈도우 부팅시 계정 자동 로그인 (0) | 2017.10.01 |
Windows 10 단축키 (0) | 2017.09.17 |