Powershell의 Parameter(전치사 역할)와 Pipeline(접속사 역할)이해하기


Powershell 구문에서 -Parameter와 |(Pipeline)을 사용하는데, 이것은 영어 문장의 [전치사와 접속사]와 유사하다. 전치사는 명사에 대한 보충 설명, 접속사는 문장에 대한 보충 설명을 할 때 사용한다.

Powershell 구문은 Verb-Noun -Parameter value (-Parameter2 value2…)이다.
여기서 사용하는 Parameter의 갯수가 많아질 수록 더욱 구체적이고 명확한 값을 불러 올 수 있다.

그리고 Verb-Noun의 결과를 다음 문장의 입력 값으로 사용하는 것이 Pipeline이다. Pipeline( | )은 결과를 나타내는 접속사(that, so that, to부정사)과 비슷한 역할을 한다.

전치사와 접속사를 사용한 영어 문장을 한 번 살펴보자.

  1. Set the table. (상 차려라.): Verb-Noun 구문으로서 명령문이다. [전치사를 추가한 문장]
    1. Set the table with the good dishes. (상을 차리되 좋은 그릇을 사용하여)
    2. Set the table for your friends. (상을 차리되 친구를 위해서)
    3. Set the table with the good dishes for your friends. (상을 차리되 좋은 접시를 사용하고 친구를 위해서)
  2. Set the table. (상 차려라.): Verb-Noun 구문으로서 명령문이다. [결과 접속사를 추가한 문장]
    1. Set the table so that you can have dinner.
    2. Set the table with the good dishes so that you can have dinner.
    3. 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을 계속해서 사용하는 경우이다.)

이제 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을 사용하면 된다는 것이다.

Leave a comment