Powershell

Powershell 파이프라인과 개체

김모우 2020. 12. 29. 22:56
728x90
반응형

 

이번 포스팅에서는 Powershell 파이프 라인 사용 방법과 이를 응용하여 개체를 필터링하는 방법에 대해서 다뤄보도록 하겠습니다.

 

 

1. Powershell 개체의 개념 및 멤버

 

- 개체의 개념

 

프로그래머의 관점으로 보았을 때 개체는 직관적으로 속성과 메서드 등의 여러 가지 멤버를 포함하는 개념을 뜻한다. 하지만 여기 Powershell에서는 실행 결과를 개체의 한 형태로 정의하였으며, 개체는 여기서 한 명령의 결과가 다른 명령의 결과가 상호 관계성을 가질 수 있다는 뜻이며, 개체의 정의에서처럼 한 개체 안에 포함된 특성, 행위, 정체성으로 개체 자체를 제어할 수 있다는 것을 뜻함. Powershell의 최상위 개체는 Object, PSObject 두 가지이다.

 

- 개체의 멤버

 

개체의 멤버는 크게 속성, 메서드, 이벤트로 나뉘며 주로 Powershell에서는 주로 속성과 메서드에 대해서 다룬다.

a. 속성(Property): 개체의 특성을 말하며 주로 명사를 사용(ex. 서비스 이름, PID, 로그 메세지 등)

b. 메서드(Method): 개체의 동작을 나타내는 멤버이며 주로 동사를 사용(ex. 동작의 종료, 로그 삭제 등)

c. 이벤트(Event): 개체에 특정 상황을 발생시킨 원인

 

2. 개체 멤버 확인하기

 

- Get-Member 명령어를 사용
> Get-Command | Get-Member


- 위와 같이 커맨드가 출력결과로 내놓는 개체의 멤버에 대해 볼 수 있다. Name, Type 등..

 

 

3. Powershell 파이프 라인 사용

 

- 명령의 결과 제한
  a. -First n: 위에서 부터 n개의 결과 출력
  b. -Last n: 아래에서 부터 n개의 결과 출력
  c. -Skip n: n개의 데이터 스킵 후 출력
  d. -index n1, n2...: 행 번호를 지정하여 결과 출력
  e. -index (n1..n2): 두 개의 행 번호를 지정하여 범위 출력

출력 제한 예시

- 표시할 속성 지정
  a. -Property 속성1, 속성2...: 선택한 속성만 표시

속성 제한 예시

속성 제한 예시 응용 - 1

: {[인덱스 번호]:[적용할 서식][자릿수 지정자]} -f [서식 문자열]
ex) @{n='Total Size(GB)'; e={'{0:N2}' -f ($_.Size/1GB)}} // 속성 이름 변경 및 값 Preprocessing

: $_. 현재 결과 값을 의미
속성 제한 응용 - 2


- 개체 정렬(Sort-Object)
 a. -Property: 개체 이름으로 정렬
 b. -Descending: 정렬 순서를 내림 차순으로 변경 (Default 오름 차순)
 c. -CaseSensitive: 정렬 시에 대소문자를 구분함

정렬 출력 예시


- 개체 필터링(Where-Object)
  a. -Property: 기본 필터로 사용하려는 개체 속성을 지정. 하나의 속성만 지정 가능
  b. -Value: 속성의 값을 지정 
  c. -FilterScript: 고급 필터로 사용하는 스크립트를 지정

개체 필터링 예시
728x90
반응형