2013-08-23 2 views
3

오늘 내 이메일에 사용되지 않은 드라이브 문자를받는 것에 대한 이메일을 받았습니다. This was their solution :이것이 작동하는 이유는 무엇입니까?

Get-ChildItem function:[d-z]: -Name | Where-Object {-not (Test-Path -Path $_)} 

PowerShell Magazine BrainTeaser had this for a solution, same thing.

ls function:[d-z]: -n|?{!(test-path $_)}|random 

나는 아무 생각하는 방법 function:[d-z]: 작품이 없습니다. 나는 'd'에서 'z'사이의 각 문자가 사용된다는 것을 알고 있지만 왜 구문이 작동하는지 알지 못합니다.

테스트 Get-ChildItem function:[d-a]: -Name 당신에게 그래서 동적 매개 변수가 있다는 점이다 Get-ChildItem : Cannot retrieve the dynamic parameters for the cmdlet. The specified wildcard pattern is not valid:[d-a]:

말하는 오류를 준다? 어째서 Get-Help gci -full이 표시되지 않습니까?

답변

7

function:은 현재 세션에 정의 된 기능 집합을 제공하는 PSDrive입니다. PowerShell은 각 단일 문자 드라이브에 대해 문자를 지정한 다음 콜론을 붙인 함수를 만듭니다.

그래서, function:[d-z]: 목록에서 함수 "D" "Z"를 통해 D-A가 문자의 범위가되지 않는 경우가 있기

function:[d-a]:

는 작동하지 않는다.

+1

감사합니다. 나는'function :'이 PSDrive라는 것을 결코 깨닫지 못했다. 나는 그것을 이해 했으므로, 나는 그것을 사용하는 것에 대해 괜찮다고 느낀다. –

관련 문제