비어 있거나 단일 항목 목록에 대해 적절한 숫자 값을 반환하려면 (gci).count를 어떻게 얻나요?

비어 있거나 단일 항목 목록에 대해 적절한 숫자 값을 반환하려면 (gci).count를 어떻게 얻나요?

관련된:
특정 달에 수정된 파일 수를 계산하는 스크립트를 어떻게 작성합니까?

예를 들어 폴더의 파일 수를 계산하기 위해 항목 수를 얻으려고 하면 (gci).countPowerShell은 빈 목록이나 항목이 하나만 포함된 목록에 대해 출력을 반환하지 않습니다. 하지만 여러 항목이 포함된 목록에는 잘 작동합니다.

여기에 이미지 설명을 입력하세요

PowerShell이 ​​모든 경우에 대해 적절한 숫자 값을 반환하도록 하려면 어떻게 해야 하나요? 즉, 빈 목록에 대해 실제 0을 출력하고 단일 항목 목록에 대해 1을 출력하려면 어떻게 해야 합니까?

위에 링크된 관련 질문에 자세히 설명된 대로 나의 특별한 사용 사례는 명령 gci출력을 where.

답변1

이는 powershell이 ​​1개 항목의 배열을 반환할 때 단순히 배열을 해당 단일 항목으로 축소한다는 사실과 관련이 있습니다.

버전 3 이전에는 예상되는 속성이 없는 개체가 발생 count하고 결과는 비어 있었습니다. 이 문제는 다음에서 "수정"되었습니다.버전 3.

따라서 두 가지 옵션이 있습니다.

  1. Powershell v3으로 업그레이드
  2. 결과를 항상 배열 유형으로 래핑하는 다음 해결 방법을 적용하세요 @().

    @(gci).count

관련 정보