PowerShell에서 개체 계산

Marion Paul Kenneth Mendoza 2023년9월13일
  1. PowerShell에서 Count 메서드를 사용하여 객체 세기
  2. PowerShell에서 Measure-Object 명령을 사용하여 개수 세기
  3. 결론
PowerShell에서 개체 계산

PowerShell은 다양한 연산자와 cmdlet으로 구성되어 있어 데이터를 효율적으로 관리하고 조작할 수 있는 유연한 방법을 제공합니다.

이 연산자 중 Count 연산자와 Measure-Object cmdlet은 배열이나 컬렉션 내의 객체 수를 빠르게 확인하거나 해당 객체들의 여러 속성을 계산하는 강력한 도구입니다.

이러한 기능을 이용하여 PowerShell을 사용하여 간편하게 객체 수와 다른 유용한 통계 정보를 얻을 수 있으며 데이터 분석과 관리에 다재다능한 도구로 사용할 수 있습니다.

이 글에서는 Count 연산자와 Measure-Object cmdlet의 실제 응용 사례를 다루며, PowerShell을 사용하여 폴더 내의 파일 개수를 세는 방법 및 다른 필수적인 계산 작업을 수행하는 방법을 상세히 설명합니다.

시스템 관리자가 자원을 관리하거나 개발자가 데이터 관련 작업을 자동화하기 위해 PowerShell을 사용하는 경우, 객체를 세고 측정하는 방법을 이해하는 것은 PowerShell 도구상의 가치 있는 기술입니다.

PowerShell에서 Count 메서드를 사용하여 객체 세기

구문:

(PSObject).Count

Count 연산자를 사용하려면 객체를 괄호 (())로 감싼 후, 점 (.)과 개수를 추가합니다.

Count 연산자를 사용하여 파일 개수 세기

시스템 관리자 또는 개발자인 경우, 디렉토리 내의 파일 개수를 세는 상황이 발생할 수 있습니다. PowerShell은 Count 연산자를 사용하여 이 작업을 간편하게 수행할 수 있어 특정 폴더 내의 파일 개수를 빠르게 확인할 수 있습니다. 이 글에서는 점진적으로 Count 연산자를 사용하여 폴더 내의 파일 개수를 세는 방법을 알아보겠습니다.

단계 1: 폴더 경로 지정

먼저, 파일 개수를 세려는 폴더의 경로를 지정해야 합니다. "C:\YourFolderPath"를 실제 폴더 경로로 대체합니다.

$folderPath = "C:\YourFolderPath"

단계 2: 파일 가져오기

다음으로, Get-ChildItem cmdlet을 사용하여 지정한 폴더 내의 파일을 가져옵니다. -File 매개변수를 사용하여 디렉토리가 아닌 파일만 가져옵니다.

$files = Get-ChildItem -Path $folderPath -File

단계 3: 파일 개수 세기

파일을 가져왔으므로, Count 연산자를 사용하여 파일 개수를 확인할 수 있습니다.

$fileCount = $files.Count

단계 4: 결과 출력

마지막으로, 파일 개수를 사용자에게 표시하거나 필요한대로 스크립트에서 사용할 수 있습니다.

Write-Host "Total files in $folderPath: $fileCount"

전체 PowerShell 스크립트

다음은 폴더 내 파일 개수를 세기 위한 전체 PowerShell 스크립트입니다.

# Step 1: Specify the Folder Path
$folderPath = "C:\YourFolderPath"

# Step 2: Retrieve the Files
$files = Get-ChildItem -Path $folderPath -File

# Step 3: Count the Files
$fileCount = $files.Count

# Step 4: Display the Result
Write-Host "Total files in $folderPath: $fileCount"

Count 연산자를 사용하여 폴더 내의 파일을 재귀적으로 세기

폴더와 하위 폴더 내의 모든 파일을 세는 경우 어떻게 해야 할까요?

아래는 전체 코드입니다.

# Define the folder path
$folderPath = "C:\YourFolderPath"

# Count the files in the folder and subfolders
$fileCount = (Get-ChildItem -Path $folderPath -File -Recurse).Count

# Display the result
Write-Host "Total files in the folder and subfolders: $fileCount"

이제 코드를 자세히 분석하고 각 부분을 설명하겠습니다:

1. 폴더와 하위 폴더의 파일 개수 세기

# Count the files in the folder and subfolders
$fileCount = (Get-ChildItem -Path $folderPath -File -Recurse).Count

여기서 Get-ChildItem cmdlet을 사용하여 지정한 폴더와 하위 폴더 (-Recurse) 내의 모든 파일을 검색합니다. -File 매개변수는 디렉토리를 제외한 파일만 결과에 포함되도록 합니다.

이 명령어를 괄호 ( ... )로 묶어 Count 연산자를 바로 적용합니다. 이 연산자는 컬렉션의 요소 수를 계산하여 총 파일 개수를 얻습니다.

Count 연산자를 사용하여 배열 내의 객체 세기

PowerShell에서 배열 내의 객체를 세는 것은 일반적인 작업이며 Count 연산자 덕분에 간단합니다.

이 연산자를 사용하면 배열이나 컬렉션 내의 요소 수를 빠르게 확인할 수 있습니다. 문자열 배열에서 객체를 세는 방법에 대해 소개하겠습니다.

문자열 배열을 사용하는 방법은 다음과 같습니다.

# Create a string array
$stringArray = "Item1", "Item2", "Item3", "Item4"

# Count the objects in the array
$count = $stringArray.Count

# Display the result
Write-Host "Total items in the array: $count"

위의 코드에서는 먼저 $stringArray라는 문자열 배열을 생성하고, 그 다음 Count 연산자를 사용하여 배열의 항목 수를 결정합니다. 마지막으로 Write-Host를 사용하여 개수를 표시합니다.

PowerShell에서 Measure-Object 명령을 사용하여 개수 세기

PowerShell의 Measure-Object cmdlet은 항목의 개수를 포함하여 객체의 다양한 속성을 계산하는 명령입니다.

Measure-Object cmdlet을 사용하여 폴더의 파일 개수 세기

폴더의 파일 개수를 세려면 Measure-Object cmdlet을 다른 PowerShell 명령어와 함께 사용합니다.

Measure-Object를 사용하여 폴더의 파일 개수를 세는 단계별 안내를 제공합니다.

단계 1: 파일 가져오기

파일을 세려면 지정된 디렉토리의 파일 및 폴더 목록을 검색하는 Get-ChildItem cmdlet을 사용합니다. 기본적으로 하위 폴더도 포함됩니다. 다음 명령을 사용합니다.

$fileList = Get-ChildItem -Path $folderPath -File

이 명령에서:

  • -Path는 폴더 경로를 지정합니다.
  • -File은 폴더를 제외한 파일만 검색합니다.

이제 $fileList 변수에 파일 객체의 컬렉션이 저장됩니다.

단계 2: 개체 개수 계산

다음으로 Measure-Object cmdlet을 사용하여 파일의 개수를 세는데 이용합니다. 다음 명령은 폴더의 파일 개수를 세는 명령입니다.

$fileCount = ($fileList | Measure-Object).Count

이 명령에서:

  • $fileList에는 파일 개체가 포함됩니다.
  • Measure-Object는 개체의 속성을 계산합니다.
  • .Count는 개체 수를 검색합니다.

이제 변수 $fileCount에 지정된 폴더의 파일 개수가 저장됩니다.

예제 코드

다음은 완전한 PowerShell 스크립트입니다.

# Step 1: Define the folder path
$folderPath = "C:\YourFolderPath"

# Step 2: Get the files
$fileList = Get-ChildItem -Path $folderPath -File

# Step 3: Measure the object count
$fileCount = ($fileList | Measure-Object).Count

# Step 4: Display the result
Write-Host "Number of files in $folderPath: $fileCount"

"C:\YourFolderPath"를 해당 폴더의 경로로 바꾸고, 스크립트를 실행하여 파일을 세어보세요.

하위 폴더의 파일 수 세기

하위 폴더의 파일도 세고자 한다면 Get-ChildItem 명령어를 수정할 수 있습니다. -Recurse 매개변수를 사용하여 PowerShell에 하위 디렉토리를 포함하도록 지시합니다. 다음과 같이 사용할 수 있습니다.

$fileList = Get-ChildItem -Path $folderPath -File -Recurse

이 단일 수정으로 지정된 폴더 및 하위 폴더의 모든 파일을 세게 됩니다.

파일의 라인 수를 위한 Measure-Object 사용

PowerShell의 Measure-Object cmdlet은 개체의 속성, 라인 수를 포함하여 다양한 속성을 계산하기 위한 다재다능한 도구입니다. 텍스트 파일의 라인 수를 세려면 Get-Content cmdlet과 Measure-Object를 함께 사용합니다.

Measure-Object를 사용하여 텍스트 파일의 라인 수를 세는 단계별 안내를 제공합니다.

단계 1: 파일 내용 읽기

라인 수를 세려면 Get-Content cmdlet을 사용하여 파일의 내용을 읽습니다. 이 cmdlet은 파일의 각 라인을 읽어 배열에 저장합니다. 다음 명령을 사용합니다.

$fileContent = Get-Content -Path $filePath

이 명령에서:

  • -Path는 텍스트 파일의 경로를 지정합니다.
  • $fileContent는 텍스트 파일의 라인을 배열로 저장합니다.

이제 텍스트 파일의 내용이 $fileContent 변수에 로드되었습니다.

단계 2: 라인 수 계산

Measure-Object cmdlet을 사용하여 텍스트 파일의 라인 수를 계산합니다. 다음 명령을 사용합니다.

$lineCount = ($fileContent | Measure-Object -Line).Lines

이 명령에서:

  • $fileContent는 텍스트 파일의 라인을 포함합니다.
  • Measure-Object -Line은 라인 수를 계산합니다.
  • .Lines은 라인 수를 검색합니다.

이제 변수 $lineCount에 텍스트 파일의 총 라인 수가 저장됩니다.

완전한 예제 코드

다음은 완전한 PowerShell 스크립트입니다.

# Step 1: Define the file path
$filePath = "C:\YourFilePath\YourFile.txt"

# Step 2: Read the file content
$fileContent = Get-Content -Path $filePath

# Step 3: Measure the line count
$lineCount = ($fileContent | Measure-Object -Line).Lines

# Step 4: Display the result
Write-Host "Number of lines in $filePath: $lineCount"

"C:\YourFilePath\YourFile.txt"를 해당 텍스트 파일의 경로로 바꾸고, 스크립트를 실행하여 라인 수를 세어보세요.

프로세스 개수를 세기 위한 Measure-Object 사용

PowerShell의 Measure-Object cmdlet은 라인이나 숫자를 세는 것에 국한되지 않습니다. 객체를 세는 데에도 사용할 수 있으므로, 프로세스를 세는 데 유용한 도구입니다. Get-Process를 사용하여 프로세스 목록을 검색한 다음 Measure-Object를 적용하여 개수를 세어보겠습니다.

Measure-Object를 사용하여 프로세스를 세는 단계별 안내를 제공합니다:

단계 1: 프로세스 목록 검색

먼저 Get-Process cmdlet을 사용하여 실행 중인 프로세스 목록을 얻습니다. 이 목록을 추가적인 분석을 위해 변수에 저장합니다:

$processList = Get-Process

이 명령에서:

  • $processList는 실행 중인 프로세스 목록을 저장합니다.

이제, $processList 변수에 이용 가능한 프로세스 목록이 있습니다.

단계 2: 프로세스 수 측정

다음으로, Measure-Object cmdlet을 사용하여 목록의 프로세스 수를 계산합니다. 다음은 명령어입니다:

$processCount = ($processList | Measure-Object).Count

이 명령에서:

  • $processList는 프로세스 목록을 포함합니다.
  • Measure-Object는 목록의 객체들의 여러 속성을 계산합니다.
  • .Count는 객체의 수를 가져옵니다.

변수 $processCount는 이제 시스템에서 실행 중인 전체 프로세스 수를 보관합니다.

단계 3: 결과 표시

프로세스 수를 확인하려면, $processCount 변수에 저장된 값을 표시합니다:

Write-Host "Number of processes running: $processCount"

이 명령은 프로세스 수를 포함하는 메시지를 출력합니다.

완전한 예제 코드

다음은 완전한 PowerShell 스크립트입니다:

# Step 1: Retrieve the process list
$processList = Get-Process

# Step 2: Measure the process count
$processCount = ($processList | Measure-Object).Count

# Step 3: Display the result
Write-Host "Number of processes running: $processCount"

시스템에서 실행 중인 프로세스 수를 계산하기 위해 스크립트를 실행하세요.

레지스트리 키 수 계산을 위한 Measure-Object 사용

레지스트리 키 수를 계산할 때에는, 이 cmdlet과 레지스트리 키에 접근할 수 있도록 해주는 Get-Item cmdlet을 함께 사용할 수 있습니다. 이는 마치 파일 시스템 경로처럼 레지스트리 키에 접근할 수 있도록 합니다.

Measure-Object를 사용하여 레지스트리 키 수를 계산하는 단계별 가이드는 다음과 같습니다:

단계 1: 레지스트리 키 접근

Get-Item cmdlet을 사용하여 카운트하려는 특정 레지스트리 키에 접근합니다. 레지스트리 경로를 문자열로 지정할 수 있습니다:

$registryPath = "HKLM:\Software\YourRegistryKeyPath"
$registryKey = Get-Item -LiteralPath $registryPath

이 명령에서:

  • $registryPath는 카운트하려는 레지스트리 키의 경로를 저장합니다.
  • $registryKey는 레지스트리 키에 접근합니다.

실제 카운트하려는 레지스트리 키 경로로 "HKLM:\Software\YourRegistryKeyPath"를 대체하세요.

단계 2: 레지스트리 키 수 측정

지정된 경로에 있는 레지스트리 키 수를 계산하기 위해 Measure-Object cmdlet을 적용합니다:

$keyCount = (Get-ChildItem -Path $registryKey.PSPath).Count

이 명령에서:

  • (Get-ChildItem -Path $registryKey.PSPath)는 지정된 경로 내의 하위 항목(레지스트리 키)을 검색합니다.
  • .Count는 레지스트리 키의 수를 가져옵니다.

변수 $keyCount는 지정된 경로 내의 전체 레지스트리 키 수를 보관합니다.

완전한 예제 코드

다음은 완전한 PowerShell 스크립트입니다:

# Step 1: Access the registry key
$registryPath = "HKLM:\Software\YourRegistryKeyPath"
$registryKey = Get-Item -LiteralPath $registryPath

# Step 2: Measure the registry key count
$keyCount = (Get-ChildItem -Path $registryKey.PSPath).Count

# Step 3: Display the result
Write-Host "Number of registry keys: $keyCount"

실제로 카운트하려는 레지스트리 키 경로로 "HKLM:\Software\YourRegistryKeyPath"를 대체하고, 스크립트를 실행하여 레지스트리 키 수를 카운트하세요.

항목을 카운트하기 위해 Measure-Object 사용

배열과 함께 사용될 때, Measure-Object는 효율적으로 배열 내의 항목 수를 계산합니다.

Measure-Object를 사용하여 배열 내의 항목 수를 계산하는 방법은 다음과 같습니다:

단계 1: 배열 생성

카운트하려는 항목이 포함된 배열을 정의하여 시작합니다. 수동으로 배열을 생성하거나, cmdlet 또는 함수를 사용하여 배열을 채울 수 있습니다. 예를 들어, 간단한 배열을 만들어 봅시다:

$myArray = 1, 2, 3, 4, 5

이 배열에는 카운트하려는 다섯 개의 항목(숫자 1에서 5)이 있습니다.

단계 2: Measure-Object 사용

배열 내의 항목 수를 계산하기 위해 Measure-Object cmdlet을 적용합니다:

$itemCount = ($myArray | Measure-Object).Count

이 명령에서:

  • $myArray는 카운트하려는 배열입니다.
  • Measure-Object는 배열을 처리하고 해당에 대한 정보를 제공합니다.
  • .Count는 배열 내의 항목 수를 가져옵니다.

변수 $itemCount는 이제 배열 내의 총 항목 수를 보관합니다.

예제 코드

다음은 완전한 PowerShell 스크립트입니다:

# Step 1: Create an array
$myArray = 1, 2, 3, 4, 5

# Step 2: Use Measure-Object to count items
$itemCount = ($myArray | Measure-Object).Count

# Step 3: Display the result
Write-Host "Number of items in the array: $itemCount"

스크립트를 실행하면, 배열 내의 항목을 카운트하고 카운트를 표시합니다.

Measure-Object를 사용하여 라인 수 세기

Measure-Object를 사용하여 문자열의 라인 수를 세려면 다음 단계를 따르세요:

단계 1: 문자열 생성

먼저, 라인 수를 세고 싶은 PowerShell 문자열을 정의하여 시작하세요. 이 문자열은 수동으로 생성하거나 파일, 사용자 입력 또는 웹 요청과 같은 다양한 원본에서 얻을 수 있습니다. 다음은 예제 문자열입니다:

$text = @"
This is line 1.
This is line 2.
This is line 3.
"@

이 예제에서 우리는 세 줄로 구성된 여러 줄 문자열을 가지고 있습니다.

단계 2: Measure-Object 사용

Measure-Object cmdlet을 적용하여 문자열 내의 라인 수를 세세요:

$lineCount = ($text | Measure-Object -Line).Lines

이 명령에서:

  • $text는 라인 수를 세고 싶은 문자열입니다.
  • Measure-Object는 문자열을 처리하고 라인 수 정보를 제공합니다.
  • -Line은 라인 수를 세고자 함을 지정합니다.
  • .Lines는 측정에서 라인 수를 검색합니다.

변수 $lineCount에는 이 문자열의 총 라인 수가 저장됩니다.

단계 3: 결과 표시

라인 수를 확인하기 위해 $lineCount 변수에 저장된 값을 표시할 수 있습니다:

Write-Host "Number of lines in the string: $lineCount"

이 명령은 문자열의 라인 수를 포함하는 메시지를 출력합니다.

예제 코드

다음은 완전한 PowerShell 스크립트입니다:

# Step 1: Create a string
$text = @"
This is line 1.
This is line 2.
This is line 3.
"@

# Step 2: Use Measure-Object to count lines
$lineCount = ($text | Measure-Object -Line).Lines

# Step 3: Display the result
Write-Host "Number of lines in the string: $lineCount"

결과:

Number of lines in the string: 3

이 스크립트를 실행하면 문자열 내의 라인 수를 세고 라인 수를 표시합니다.

Measure-Object를 사용하여 문자 수 세기

Measure-Object를 사용하여 문자열의 문자 수를 세려면 다음 단계를 따르세요:

단계 1: 문자열 생성

먼저, 문자의 개수를 세고 싶은 PowerShell 문자열을 정의하세요. 이 문자열은 수동으로 생성하거나 사용자 입력 또는 데이터 파일과 같은 다양한 원본에서 얻을 수 있습니다. 다음은 예제 문자열입니다:

$text = "Hello, DelftStack!"

이 예제에서 우리는 18개의 문자로 구성된 간단한 문자열을 가지고 있습니다.

단계 2: Measure-Object 사용

Measure-Object cmdlet을 적용하여 문자열 내의 문자 수를 세세요:

$charCount = ($text | Measure-Object -Character).Characters

이 명령에서:

  • $text는 문자 수를 세고 싶은 문자열입니다.
  • Measure-Object는 문자열을 처리하고 문자 수 정보를 제공합니다.
  • -Character는 문자 수를 세고자 함을 지정합니다.
  • .Characters는 측정에서 문자 수를 검색합니다.

변수 $charCount에는 이 문자열의 총 문자 수가 저장됩니다.

단계 3: 결과 표시

문자 수를 확인하기 위해 $charCount 변수에 저장된 값을 표시할 수 있습니다:

Write-Host "Number of characters in the string: $charCount"

이 명령은 문자열의 문자 수를 포함하는 메시지를 출력합니다.

예제 코드

다음은 완전한 PowerShell 스크립트입니다:

# Step 1: Create a string
$text = "Hello, DelftStack!"

# Step 2: Use Measure-Object to count characters
$charCount = ($text | Measure-Object -Character).Characters

# Step 3: Display the result
Write-Host "Number of characters in the string: $charCount"

결과:

Number of characters in the string: 18

이 스크립트를 실행하면 문자열 내의 문자 수를 세고 문자 수를 표시합니다.

결론

이 문서에서는 PowerShell의 두 가지 중요한 도구인 Count 연산자와 Measure-Object cmdlet을 살펴보았습니다.

이러한 도구를 사용하면 배열이나 컬렉션 내의 객체를 효율적으로 계수하고 측정할 수 있으므로, PowerShell은 데이터 분석과 관리에 다재다능한 해결책이 됩니다.

이 문서에서 제공된 단계별 지침과 예제를 따르면, PowerShell 스크립트에서 Count 연산자와 Measure-Object cmdlet을 자신감있게 사용할 수 있습니다.

파일, 레지스트리 키, 프로세스, 배열 또는 문자열을 다루는 중이더라도, 이러한 도구는 PowerShell 스크립팅 작업에 필수적입니다.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell Object