객체의 문자, 단어 및 줄과 같은 숫자 속성을 계산하거나 계산하는 것은 짜증스러울 수 있습니다. 다행히도, PowerShell의 Measure-Object cmdlet은 이 작업을 수행할 수 있습니다.
이 튜토리얼에서는 PowerShell에서 객체 속성을 자동으로 측정하는 Measure-Object
cmdlet의 기능을 배우게 될 것입니다.
객체 측정 기술을 향상시키기 위해 바로 시작해 보세요!
전제 조건
이 튜토리얼은 실습을 위한 데모입니다. 따라하기 위해서는 PowerShell이 설치된 시스템이 필요합니다. 이 튜토리얼은 PowerShell v7을 사용하는 Windows 10을 기반으로 합니다.
파일 및 폴더 개수 세기
디렉토리의 파일 및 폴더 개수를 알면 다양한 시나리오에서 도움이 될 수 있습니다. 예를 들어 폴더의 크기를 모니터링하거나 디렉토리의 파일 수를 확인해야 할 때 등이 있습니다.
Measure-Object
cmdlet은 디렉토리의 파일 및 폴더 개수를 세어줍니다. 정확한 개수는 시스템 리소스를 더 잘 관리하고 최적화하는 데 도움이 됩니다.
Measure-Object
cmdlet을 사용하여 파일 및 폴더 개수를 계산하는 방법을 확인해 보겠습니다:
1. PowerShell을 열고, 현재 디렉토리에서 파일과 폴더의 총 개수를 계산하고 반환하기 위해 다음 Get-ChildItem
명령을 실행하십시오.
아래 출력은 현재 디렉토리에 있는 파일과 폴더의 개수인 4852를 나타냅니다.

아마도 디렉토리 트리 전체에서 모든 파일과 하위 디렉토리를 포함하고 싶을 것입니다. 그렇다면 아래와 같이
-Recurse
매개변수를 추가하십시오.Get-ChildItem -Recurse | Measure-Object
2. 다음으로, 작업 디렉토리 내의 총 디렉토리만을 계산하기 위해 이전 단계에서 수행한 동일한 명령을 실행하십시오. 이번에는 -Directory
매개변수를 추가하여 디렉토리만을 계산하도록 합니다.
아래에서 볼 수 있듯이, 명령은 디렉토리만을 카운트하여 다른 모든 객체를 제외하였기 때문에 총 개수가 낮아졌습니다(135).

3. 이제 현재 디렉토리에서 실행 가능한 파일(.exe
)의 개수를 계산하기 위해 아래 명령을 실행하십시오.
-Filter
매개변수는 Get-ChildItem
cmdlet에 결과를 필터링하여 지정한 확장자를 가진 파일만 반환하도록 지시합니다(예: *.txt
, *.jpg
, *.csv
).

파일 크기 측정
객체의 길이와 크기를 측정하는 것은 시스템의 성능을 개선하는 데 도움이 됩니다. 속성을 계산하는 것 외에도 Measure-Object
cmdlet을 사용하여 객체의 길이와 크기를 측정할 수도 있습니다.
아래 코드를 실행하여 현재 디렉토리의 모든 파일(Get-ChildItem
)을 검색하고 기본적으로 바이트 단위로 해당 파일의 길이를 표시합니다(Write-Host
).
아래 코드는 최소 파일 크기, 최대 파일 크기, 평균 파일 크기, 파일 크기의 합계, 파일의 총 개수를 콘솔에 출력합니다.
아래에서는 바이트 단위로 표시된 크기를 볼 수 있습니다.

콘솔에 코드를 붙여넣는 것이 어렵다면, PowerShell 스크립트 파일로 코드를 저장하고 실행하십시오.
이제 다음 명령어를 실행하여 현재 디렉토리에서 파일을 가져오고, 그 크기가 최대 파일 크기($files.Maximum
)와 동일한 파일을 얻으십시오.
아래 출력에서는 현재 디렉토리에서 가장 큰 파일의 이름을 보여줍니다.

텍스트 파일 내용 측정
파일 크기를 측정하는 대신, 텍스트 파일의 라인 수, 단어 수 또는 문자 수를 결정해야 할 수 있습니다. 그렇다면, Measure-Object
cmdlet은 텍스트 파일 내용을 측정하기 위한 많은 다른 매개변수를 가지고 있습니다.
아래 코드를 실행하여 다음을 수행하십시오. 텍스트 파일의 내용을 -Character
, -Line
, -Word
로 측정하고 측정 결과를 출력하십시오.
$file_path
와 $file_content
변수의 값을 원하는 값으로 변경하십시오.

부울 값 측정하기
부울 값은 참 또는 거짓만 가질 수 있는 값입니다. PowerShell에서는 부울 값은 스크립트의 흐름을 제어하거나 조건(참 또는 거짓)을 결정하거나 명령의 성공 또는 실패를 나타내는 데 자주 사용됩니다.
부울 값 측정은 다음과 같은 다양한 시나리오에서 유용할 수 있습니다:
- 데이터 세트에서 참 또는 거짓 값의 개수 세기.
- 참 값의 비율을 전체 값의 비율로 확인하기.
이 정보는 데이터 처리 또는 분석에서 정확한 결정을 내릴 수 있도록 도움이 됩니다.
부울 값 측정이 어떻게 작동하는지 확인하려면:
다음 명령을 실행하여 배열 ($values
)에서 부울 값 (기본적으로 true 값)의 합계를 계산하십시오.
아래에서, 부울 값의 총 카운트는 9이며, 합계는 5입니다. 왜냐하면 true 값만 계산되기 때문입니다(9).
그렇다면 false 값은 어떻게 될까요? 다음 단계로 이동하여 몇 가지 명령을 실행하십시오.

이제 아래 코드를 실행하여 true 값의 합계($trueCount
)를 전체 부울 값의 개수($count
)에서 빼면 차이는 false 값의 총 개수($falseCount
)입니다.

불리언 값 측정이 일상적인 작업이라면, 언제든지 호출할 수 있는 함수를 만들어 작업을 실행할 수 있습니다.
해시테이블 측정
PowerShell의 해시테이블(키-값 쌍의 컬렉션)은 데이터를 빠르고 효율적으로 저장하고 검색할 수 있게 해줍니다. 해시테이블의 항목 수나 최대 및 최소값이 필요한 경우, Measure-Object
cmdlet을 사용하여 해시테이블을 측정할 수 있습니다.
아래 명령을 실행하여 해시테이블($MyHastable
)의 Num
속성의 -Minimum
및 -Maximum
값을 찾을 수 있습니다.

표준 편차 측정
데이터 세트를 검토하는 것은 장황할 수 있지만 그럴 필요는 없습니다. 표준 편차를 측정하면 데이터 세트 값의 분포를 이해하는 데 유용합니다. 또한 결과에 영향을 주는 이상치나 이상한 데이터 포인트를 식별할 수도 있습니다.
표준 편차는 데이터 세트 값들의 평균값에서의 변동성이나 분산을 측정하는 것입니다. 이 측정은 데이터의 분산을 제곱 차이의 평균인 분산의 제곱근을 구하여 계산됩니다.
아래의 코드를 실행하여 -평균
과 -표준편차
를 계산하고 표시합니다. 이때 숫자 배열은 $Numbers
변수에 저장됩니다.
통계학에서 평균은 중심 경향성을 측정하며 데이터 세트의 전형적이거나 대표적인 값을 설명합니다.
평균은 데이터 세트의 모든 숫자를 더한 후 값의 총 개수로 나누어 계산됩니다. 이 예제에서는 데이터 세트가 {10
, 20
, 30
, 40
, 50
}이며 합계는 150이고 숫자 개수는 5입니다(5
).
따라서 아래와 같이 평균이 계산됩니다: 30
.
반면, 표준 편차는 데이터 세트의 분포나 퍼짐 정도를 측정합니다. 표준 편차는 다음과 같이 계산됩니다:

결론
데이터 측정은 필수적인 작업이며, PowerShell의 Measure-Object
cmdlet은 이 작업을 완료하기 위한 강력한 도구입니다. 이 튜토리얼에서는 다양한 방법으로 데이터를 측정하는 방법을 배웠습니다. 파일, 텍스트 파일 내용, 부울 값, 문자열, 배열 또는 해시테이블과 작업 중이든지 관계없이 데이터를 측정하면 유용한 통찰력을 제공할 수 있습니다.
이제 데이터의 평균, 최대값 및 최소값을 손쉽게 계산하고 데이터의 변동성이나 분포를 측정할 수 있습니다. 이러한 기능을 통해 데이터에 대한 깊은 이해를 얻고 분석에 기반한 정보를 활용하여 결정을 내릴 수 있습니다.
이 새로운 지식을 활용하여 PowerShell 도구 상자를 확장하고 Compare-Object
를 추가해보는 것은 어떨까요?
Source:
https://adamtheautomator.com/powershell-measure-object/