336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
파이프라인은 둘 이상의 명령을 포함하여 순차적으로 실행할 수 있는 구조로, 명령 줄 인터페이스에 사용되는 중요한 개념이다.
파이프라인을 사용한 명령은 왼쪽에서 오른쪽 방향으로 각 명령을 실행한다. 즉, 이전 명령의 결과가 다음 명령의 입력이 되는 구조다.
# 시스템의 프로세스 정보를 가져와 파일로 출력 PS > Get-Process | Out-File Users\process.txt # 출력 방향 재지정 # 결과를 파일로 출력할 때 다음처럼 기호 ">"를 사용하여 직접 파일로 출력 방향을 재 지정할 수 있다. PS > Get-Process > process.txt
파워셸 명령의 출력 결과는 텍스트가 아니며, 항상 개체를 생성한다. 파워셸은 파이프라인의 맨 끝에 이를 때까지 해당 파이프라인에서 개체를 전달한다.
파이프라인의 끝에 남은 개체는 출력 명령의 재전송을 명시적으로 지정하지 않는 한, Out-Default라는 특수 명령으로 자동 전달된다. 이 Out-Default는 기본적으로 개체를 Out-Host로 전달하며, 화면에 텍스트로 표시한다.
* 파이프라인 개념실습
PS > Get-Process | Out-File c:\ServiceList.txt PS > Get-Command -Noun *grid* CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Out-GridView 3.1.0.0 Microsoft.PowerShell.Utility PS > Get-EventLog -LogName Security -Newest 5 | Out-GridView
PS > Get-ChildItem -Path C:\Windows | Get-Member TypeName: System.IO.DirectoryInfo Name MemberType Definition ---- ---------- ---------- LinkType CodeProperty System.String LinkType{get=GetLinkType;} Mode CodeProperty System.String Mode{get=Mode;} Target CodeProperty System.Collections.Generic.IEnumerable`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] Target{get=GetTarget;} Create Method void Create(), void Create(System.Security.AccessControl.DirectorySecurity directorySecurity) ...... TypeName: System.IO.FileInfo Name MemberType Definition ---- ---------- ---------- LinkType CodeProperty System.String LinkType{get=GetLinkType;} Mode CodeProperty System.String Mode{get=Mode;}
위 명령을 실행하면 FileInfo 와 DirectoryInfo라는 두 종류의 개체를 생성한다. 디렉토리 목록을 나열하면 파일과 폴더를 모두 포함하기 때문에, 파일 개체와 디렉토리 개체가 나오는 것이다.
파이프라인을 통해 여러 종류의 개체를 Get-Member로 보내면 각 개체별로 멤버를 표시한다.
명령의 파이프라인 지원 방식
- ByValue : 첫 번째 명령의 출력을 두 번째 명령의 매개변수 중 하나에 바인딩
- ByPropertyName : ByValue 방식이 실패할 때 시도
'ⓟrogramming > PowerShell' 카테고리의 다른 글
PowerShell Script - 변수 (0) | 2018.06.26 |
---|---|
PowerShell Script - 기초 (0) | 2018.06.26 |
개체 (Object) (0) | 2018.06.23 |
모듈과 스냅인 (0) | 2018.06.23 |
PowerShell Basic (0) | 2018.06.19 |