Help 이해하기


  • Powershell에서는 Help(도움말, Get-Help)를 이해하는 것이 매우 중요하다.
  • 이 중에서 매개변수(Parameter)의 값 중에서 문자열이 있는데, 그 문자열의 <string[]>과 <string>의 차이점을 알아보자
    • <string> : 문자열 하나만 사용할 수 있다.
    • <string[]> : 문자열을 comma로 구분하여 여러 개를 사용할 수 있다.
  • Help Get-Childitem을 실행하면 -Filter에는 <string>이고, -Include에는 <string[]>으로 나온다.
    • Get-ChildItem [[-Path] <String[]>] [[-Filter] <String>] [-Exclude <String[]>] [-Force [<SwitchParameter>]] [-Include <String[]>]
  • 기본적으로 -Filter와 -Include는 원하는 항목만 찾아내는 기능으로서는 동일하지만, 도움말을 보면 조금 차이가 있다.
    • Get-ChildItem -Path $home -Recurse -Filter *.ps1
      Get-ChildItem -Path $home -Recurse -Include *.ps1
      ** 이 두 개의 결과는 동일하다. 하지만 성능은 -Filter가 더 좋다. 가능하면 -Filter를 사용하기를 권장한다.
      ** -Include는 꼭 -Recurse와 함께 사용해야 하지만 -Filter는 -Recurse를 함께 사용하지 않아도 된다
    • Get-ChildItem -Path $home -Recurse -Filter *.ps1, *.txt
      Get-ChildItem -Path $home -Recurse -Include *.ps1, *.txt
      ** -Filter는 실패하고 -Include는 성공한다. 그 이유는 도움말을 보면 -Filter는 <string>으로 나오기 때문에 값을 문자열 하나만 사용할 수 있다. 하지만 -Include는 <string[]>로 나오기 때문에 값을 comma로 사용하여 여러 개를 나열하여 사용할 수 있기 때문이다.
  • 결론은 Help를 볼 때  Parameter의 값이 문자열(String)일 때는 <string>인지, 아니면 <string[]>인지를 구문하여 여러 개의 값을 사용하는 여부를 확인한다 
  • 참고로 -ComputerName <string[]> 이므로 여러 개의 컴퓨터 이름을 comma로 구분하여 사용할 수 있다.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s