PowerShell에서는 간단한 프로그래밍을 할 수 있다.
 간단한 프로그래밍을 이용하면, 간단한 장치나 동작을 시킬 수 있다.

 여기서 간단한 프로그래밍은 중복되는 파일이 있는지 확인하면서 삭제하거나 특정 위치로 옮기거나 실행시켜서 제거하는 장치를 만들 수 있다.

 

 그걸 하기 위해서 변하는 값을 저장하여 처리할 수 있어야 하며, PowerShell에서도 변수를 사용할 수 있다.

 

[PowerShell] 간단한 변수 생성.

 PowerShell에서 변수를 생성하기 위해선 '$'라는 기호를 사용해야 한다.

 

1
2
3
4
5
6
7
8
9
# 변수값을 정의 하기 위해서는 '$'를 사용해야한다.
$values = 0;
 
# 변수값을 숫자로 적용할 수 있다.
$123 = 0;
 
# 변수를 제거하는 명령어.
Remove-Variable values, 123;
 
cs

 

 

 변수를 사용하고, 제거하기 위해서는 PowerShell에서는 Remove-Variable이라는 함수를 사용해서 제거를 할 수 있다.

 변수 값을 제거해주지 않으면, PowerShell에 있는 변수를 재활용하지 않는 이상은 계속 쌓여서 메모리에 차지하는 문제점이 있다.

 

[PowerShell] PipeLine에 연결된 변수 사용법.

 참고 사이트: [MSDOC] PowerShell Pipelines
 PowerShell은 명령어 혹은 프로그램에서 출력되는 값을 받아들여서 다른걸로 재활용 할 수 있다.

 이것을 PipeLine이라고 하며, 다른 프로세서간의 통신을 연결해서 처리 할 수 있다.

1
2
3
4
5
6
# command1에 나온 결과물을 command2에 보내고, command2에 나온 결과물을 command3에 보낸다.
command1 | command2 | command3;
 
# list-item에서 나온 값을 출력하는 방법.(굳이 할 필요는 없다.)
ls | echo
 
cs

 여기서 PipeLine의 변수를 이용해서 제어를 할 수 있는데.

 이 제어하기 위해서 '$_'라는 변수형태를 취하게 된다.

1
2
3
4
5
6
7
8
9
# Text File 검색.
Get-ChildItem -Path *.txt |
# 개체 필터링.
  Where-Object {$_.length -gt 10000|
# 길이[파일 크기]에 맞춰서 정렬[오름차순]
    Sort-Object -Property length |
# 테이블 형태에 맞춰서 출력.
      Format-Table -Property name, length
 
cs

 

[PowerShell] 조건문

 PowerShell에서는 간단한 계산을 할 수 있지만, 알고리즘을 사용하기 위해서는 연산만 할 수 있으면 안된다.

 특정 조건에 맞춰서 참과 거짓으로 나뉘어져야하는데. 이 방법은 if문과 switch문을 이용해서 적용 할 수 있다.

 참고 사이트: [MSDOC] PowerShell 조건문 

[PowerShell] 간단한 if문 사용하기.

  if문은 참과 거짓을 사용할 수 있어야하므로, 2가지 경우를 사용할때 사용 할 수 있다.

 if문과 if-else문, if-else if문을 사용할 수 있다.

1
2
3
4
5
6
7
if(1 -eq 2){
 echo "True";
}elseif(1 -eq 2){
 echo "2=2";
}else{
 echo "False";
}
cs

 

[PowerShell] 간단한 Switch문 사용하기.

 PowerShell에서 if문을 사용하기에 분기가 많거나 하면, 거기에 맞춰서 처리하기 위해서 Switch문을 사용한다.

 

1
2
3
4
5
6
7
8
$switchValues = 0;
 
switch($switchValues){
    0 { $a = 1; }
    1 { $a = 2; }
#...
    default { $a = 0; }
}
cs

 

 

[PowerShell] 반복문.

 조건문 외에도 조건에 맞춰서

[PowerShell] 간단한 반복문 For문

1
2
3
4
5
#For문 적용.
for($i = 0$i -lt 100$i++){
    echo $i;
}
 
cs

 

 

[PowerShell] 간단한 반복문 ForEach문

1
2
3
4
5
6
#Foreach문 적용.
$folders = (Get-ChildItem -File *.txt);
foreach($folder in $folders)
{
    echo $folder.Name;
}
cs

 

[PowerShell] 간단한 반복문 While문

1
2
3
4
5
6
#while문 적용.
while($i -le 100){
    echo $i;
    $i+=1;
}
 
cs

 

[PowerShell] 조건에 적용할 비교문 방식.

-eq = equal

-ne = not equal

-le = least equal

-lt = least

-ge = great equal

-gt = great

 

-and = and

-or = or

-not = not

 

이렇게 맞춰서 비교문을에 적용 할 수 있으며, 비교문, 반복문의 조건을 적용할때 사용하면된다.

 

[PowerShell] 간단한 함수 생성.

참조 사이트: [MSDOC] 함수

반복적으로 동작하는 동작 방식을

1
2
3
4
5
6
7
8
9
10
11
# 함수 생성.
function addLines{
# 매개변수 저장.
    param (
        $paramHTMLFileName
    )
#함수 처리과정.
    "<p>`&nbsp`; <br/></p>" >> $paramHTMLFileName;
}
 
 
cs

 

[PowerShell] 간단한 예외 처리.

참조 사이트: [MSDOC]예외처리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 함수 생성.
function addHashDataLines{
    # 매개변수.
    param(
        $paramHTMLFileName,
        $paramAlgorithm,
        $paramTargetFileName
    )
    
    # 예외 처리.
    try{
        $hashData = Get-FileHash -algorithm $paramAlgorithm $paramTargetFileName;
        $algorithm = $hashData.Algorithm;
        $hash = $hashData.Hash;
        "<p>`&nbsp`; $algorithm : <br/></p>" >> $paramHTMLFileName;
        "<p>`&nbsp`; $hash <br/></p>" >> $paramHTMLFileName;
    }catch{
        echo "Error! Can't $paramTargetFileName is $paramAlgorithm Make File Hash!";
    }
}
 
cs

 

 

 

Posted by JunkMam
,