PowerShell (v3이 설치됨)에서 이상한 동작을 관찰 할 때 간단한 데모 스크립트를 작성했습니다.Powershell : 이상한 행동을 일으키는 GetType
$file = ls 'C:\temp' | Where-Object {$_.Extension -eq '.txt'}
$file.FullName
#$file.GetType()
dir 'c:\temp'
꽤 괜찮은가요? 예상대로 실행됩니다 (txt 파일이있는 c : \ temp 디렉토리가 있다고 가정). 그러나 $ file.GetType() 줄의 주석 처리를 제거하면 뒤 따르는 dir 줄은 더 이상 간단한 디렉터리 목록을 제공하지 않습니다. 대신 디렉토리의 모든 항목에 대한 자세한 목록을 제공합니다. GetType을 out-null로 파이핑 (piping)하려고 시도했지만 dir이 잘 작동하지만 GetType 및 디렉토리를 나중에 나열 할 수있는 것 같지 않습니다.
그래서 GetType을 호출하면 스트림 아래 다른 cmdlet에서 변경이 발생했는지 궁금합니다. 누군가 그것을 일으키는 메커니즘을 설명 할 수 있습니까?
또한 몇 가지 다른 방법을 시도해 보았는데 몇 가지 원인 (예 : GetAccessControl)과 다른 원인 (예 : GetHashCode)을 발견했습니다. 따라서 메서드를 호출하는 것만이 아니라 특정 메서드가 동작을 유발합니다.
[여기를 클릭하십시오.] (http://connect.microsoft.com/PowerShell) –