2016-12-31 16 views
2

이의 내가이 Section 명령을 포함하는 PowerShell 스크립트 작성한다고 가정 해 봅시다 명명 :PowerShell을 cmdlet을 매개 변수에 마이크로 소프트의 일관성

Get-ChildItem -Recurse 

을하지만 그 대신 내가 쓴 :

Get-ChildItem -Re 

은 시간을 절약하기 위해. 얼마 후에 PowerShell 버전을 업그레이드 한 후 Microsoft는 Get-ChildItem에 "-Return"이라는 매개 변수를 추가하기로 결정했습니다. 예를 들어 항목이 있는지 여부에 따라 True 또는 False를 반환합니다.

가상 시나리오에서 스크립트가 예상대로 작동하도록 모든 이전 스크립트를 편집해야합니까? 필자는 타이핑 시간을 절약하려는 Microsoft의 시도를 이해하지만, 이것이 내 관심사이므로 전체 매개 변수 이름을 쓰려고 항상 노력할 것입니다.

물론 내가 알지 못하는 것을 알지 않는 한. 통찰력을 가져 주셔서 감사합니다!

답변

11

이 더 문제보다 호언 장담처럼 들리 겠지만 대답 : 나는 예상대로 스크립트가 작동 할 수 있도록 내 모든 이전의 스크립트를 편집해야합니까,

을 가상 시나리오?

예!

당신은 항상 스크립트의 전체 매개 변수 이름 (또는 재사용 가능한 코드의 다른 조각)를 사용합니다.

PowerShell을 대화 형으로 사용할 때 부분 매개 변수 이름, 별칭 및 기타 바로 가기의 자동 해결이 편리합니다.

ls -re *.ps1|% FullName 

우리가 프로필에 모든 스크립트의 경로를 발견 할 때 그것은 우리가 powershell.exe을 발사하고 수행 할 수 있습니다. 탐사에 아주 좋습니다!

하지만 스크립트로 그 기능을 통합한다면 나는 할 것이다 :

Get-ChildItem -Path $Home -Filter *.ps1 -Recurse |Select-Object -ExpandProperty FullName 

을하지 당신이뿐만 아니라 일관성과 가독성을 위해, 언급 한 이유 - 내 동료를 따라 어쩌면 오면 내가 사용하고있는 바로 가기에 익숙하지 않은 경우, 그는 여전히 파이프 라인의 의미와 예상 출력을 식별 할 수 있습니다.


참고 : PSScriptAnalyzer이에 대한 경고 규칙을 추가하기 위해 현재 threeopenissues GitHub의에있다 - 나는 프로젝트 테이너가이 :-)로

+0

덕분에 손을 사랑 확신 당신의 대답. 호언 장담은 아니지만 인기있는 책 "Learn PowerShell in Month"를 읽었으며 작성자는 스크립트에서이 요구 사항을 지정하지 않았습니다. 그는 단지 당신이 짧은 매개 변수 등을 쓸 수 있다고 말했다. 그래서 나는 마이크로 소프트가 내가 듣지 못했던 이것에 대해 말할 것이 있는지를 물어 보는 것이 중요하다고 생각했다. 어쨌든, 당신이 말한 것은 많은 의미가 있습니다. 고마워. –

+0

공식 참조는 찾을 수 없지만이 주제에 관해 논의한 모든 관련 Microsoft 직원 및 MVP는 깜박임없이 동의 함 –

+0

편집 : 필자가 언급 한 책의 저자는 필기시 항상 * 전체 매개 변수 *를 작성했습니다. 나중에이 장의 스크립트를 사용하십시오. 나는 그에게 적절한 신용을주기 위해이 정보를 바로 잡고 싶었다. –