Powershell 구문에서 -Parameter와 |(Pipeline)을 사용하는데, 이것은 영어 문장의 [전치사와 접속사]와 유사하다. 전치사는 명사에 대한 보충 설명, 접속사는 문장에 대한 보충 설명을 할 때 사용한다.
Powershell 구문은 Verb-Noun -Parameter value (-Parameter2 value2…)이다.
여기서 사용하는 Parameter의 갯수가 많아질 수록 더욱 구체적이고 명확한 값을 불러 올 수 있다.
그리고 Verb-Noun의 결과를 다음 문장의 입력 값으로 사용하는 것이 Pipeline이다. Pipeline( | )은 결과를 나타내는 접속사(that, so that, to부정사)과 비슷한 역할을 한다.
전치사와 접속사를 사용한 영어 문장을 한 번 살펴보자.
-
Set the table. (상 차려라.): Verb-Noun 구문으로서 명령문이다. [전치사를 추가한 문장]
- Set the table with the good dishes. (상을 차리되 좋은 그릇을 사용하여)
- Set the table for your friends. (상을 차리되 친구를 위해서)
- Set the table with the good dishes for your friends. (상을 차리되 좋은 접시를 사용하고 친구를 위해서)
- Set the table with the good dishes. (상을 차리되 좋은 그릇을 사용하여)
-
Set the table. (상 차려라.): Verb-Noun 구문으로서 명령문이다. [결과 접속사를 추가한 문장]
- Set the table so that you can have dinner.
- Set the table with the good dishes so that you can have dinner.
- Set the table so that you can have dinner to be full at last. (결과의 to부정사)
(이 문장은 Verb-Noun so that( | ) Verb-Noun to( | ) Verb-Noun 형식이다. 즉, Pipeline을 계속해서 사용하는 경우이다.)
- Set the table so that you can have dinner.
이제 parameter와 pipeline을 사용하는 Powershell 문장을 한 번 살펴보자.
1. Get-Process (현재 실행되는 모든 프로세스를 확인한다. 그러므로 가장 많은 정보를 보여준다)
Get-Process -Name notepad (notepad라는 Process가 있는지만 확인한다. 좀 더 구체적이고 좁은 결과를 도출하는 것이다.)
Get-Process -Name notepad -Computername remotecomputer
(원격 컴퓨터에서 notepad 프로그램이 실행중인지 확인. 2개의 매개변수를 사용하여 더욱 구체적인 정보를 원하는 것이다.)
Get-Process -Name notepad | Stop-Process
(notepad가 실행중인지 확인한다. 그런 다음 그 프로세스가 있으면 종료시킨다. pipeline을 사용하면 2차적으로 작업을 할 수 있다.)
Get-Process | Sort-Object -Property pm -Descending | Select-Object -First 5
(pipeline을 1개 이상을 사용할 수 있다. 현재 실행중인 프로세스를 확인한다. 그런 다음 그것의 결과를 기준으로 정렬하는데 정렬하는 기준은 physical memory이고 내림 차순으로 한다. 그리고 이것을 결과를 기준으로 다시 한 번 pipeline을 하는데, 모든 정렬된 것 중에서 위에서 5개만 화면에 보여주는 것이다. 즉, 모든 내용을 보는 것이 아니라 가장 많이 물리적 메모리를 사용하여 프로세스 5개만 보고 싶은 것인 것이다.)
** 결론적으로 Powershell 구문 형식을 무작정 외워서 사용하지 말고, 영어 문장 형식대로 사용하면 된다는 것이다.
요약하면, 좀 더 구체적으로 자세한 결과를 원하는 -Parameter를 많이 사용하면 되고,
앞 문장의 결과를 다음 문장의 입력 값으로 사용하고 싶으면 Pipeline을 사용하면 된다는 것이다.