PowerShell에서 Foreach 객체에서 나가는 방법

  1. PowerShell에서 ForEach-Object 종료를 위한 break 조건 사용
  2. PowerShell에서 ForEach-Object 종료를 위한 ifbreak 사용
  3. PowerShell에서 ForEach-Object 종료를 위한 ifreturn 사용
  4. PowerShell에서 ForEach-Object 종료를 위한 ifcontinue 사용
  5. 결론
PowerShell에서 Foreach 객체에서 나가는 방법

ForEach-Object cmdlet는 사용자가 컬렉션을 반복하고 입력 객체 컬렉션의 각 항목에 대해 작업할 수 있도록 허용합니다. ForEach-Object에서 입력 객체는 cmdlet으로 파이프되거나 -InputObject 매개변수를 사용하여 지정됩니다.

PowerShell에서 ForEach-Object 명령을 구성하는 두 가지 방법이 있습니다: 스크립트 블록작업 문. ForEach-Object cmdlet은 각 입력 객체의 스크립트 블록이나 작업 문을 실행합니다.

작업을 지정하기 위해 스크립트 블록을 사용합니다. $_ 변수는 스크립트 블록 내에서 현재 입력 객체를 나타내는 데 사용됩니다.

스크립트 블록은 모든 PowerShell 스크립트를 포함할 수 있습니다. 예를 들어, 다음 명령은 컴퓨터에 설치된 각 cmdlet의 Name 속성, 함수 및 aliases의 값을 가져옵니다.

Get-Command | ForEach-Object { $_.Name }

ForEach-Object 명령을 구성하는 또 다른 방법은 작업 문을 사용하는 것입니다. 작업 문으로 속성 값을 지정하거나 메서드를 호출할 수 있습니다.

Get-Command | ForEach-Object Name

때때로, ForEach-Object에서 종료하고 싶을 때가 있지만, 이는 ForEach 문과는 다르게 작동합니다. ForEach-Object에서는 각 객체가 생성되는 즉시 문이 실행됩니다.

ForEach 문에서는 루프가 실행되기 전에 모든 객체가 수집됩니다. ForEach-Object는 실제 루프가 아닌 cmdlet입니다.

루프를 종료하기 위해 break 또는 continue를 사용할 때, 전체 스크립트가 종료되며 그 뒤의 문을 건너뛰지 않습니다. 그러나 PowerShell에서 특정 조건을 사용하여 ForEach-Object 객체에서 종료할 수 있습니다.

PowerShell에서 ForEach-Object 종료를 위한 break 조건 사용

PowerShell에서 foreach-object 루프는 컬렉션이나 파이프라인의 각 항목을 반복하는 데 일반적으로 사용됩니다. 때때로, 특정 조건에 따라 이 루프를 조기에 종료할 필요가 있습니다.

break 문은 특정 조건이 충족될 때 루프를 즉시 종료하는 간단한 방법을 제공합니다.

$numbers = "one", "two", "three", "four", "five"
$Break = $False;

$numbers | Where-Object { $Break -eq $False } | ForEach-Object {
    $Break = $_ -eq "three";
    Write-Host "The number is $_.";
}

이 코드 조각에서는 숫자를 나타내는 문자열을 포함하는 배열 $numbers를 초기화합니다. 또한 $Break를 처음에 $False로 설정합니다.

foreach-object 루프 내에서, $Break 변수를 기반으로 항목을 필터링하기 위해 Where-Object를 사용합니다. $Break$False이면 루프가 계속되고, 그렇지 않으면 멈춥니다.

루프 안에서 현재 항목이 three와 같은지 확인합니다. 만약 그렇다면, $Break$True로 설정하여 루프를 종료하게 됩니다.

출력:

파워셸에서 foreach 객체에서 종료 - 출력 1

PowerShell에서 ForEach-Object 종료를 위한 ifbreak 사용

때때로, 특정 조건에 따라 이 루프를 조기에 종료할 필요가 있습니다. if 방법은 루프 내에서 조건을 평가하고 조건이 충족될 때 종료를 트리거하는 간단한 접근 방식을 제공합니다.

이 방법에서는 ForEach-Object에서 종료하기 위해 객체의 컬렉션에 값을 사용해야 합니다. 예를 들어, if 조건을 사용하여 ForEach-Object에서 종료할 수 있습니다.

$numbers = "one", "two", "three", "", "four"

$numbers | ForEach-Object {
    if ($_ -eq "") {
        break;
    }
    Write-Host "The number is $_."
}

제공된 코드 조각에서는 숫자를 나타내는 문자열을 포함하는 배열 $numbers를 초기화합니다. foreach-object 루프 내에서 배열의 각 항목을 반복합니다.

if 문을 사용하여 현재 항목 $_이 빈 문자열인지 확인합니다. 조건이 참으로 평가되면, break를 사용하여 루프에서 즉시 종료합니다.

그렇지 않으면 루프가 계속되고, 현재 숫자를 Write-Host를 사용하여 출력합니다.

출력:

powershell에서 foreach 객체에서 나가기 - 출력 2

PowerShell에서 ForEach-Object 종료를 위한 ifreturn 사용

PowerShell의 foreach-object 루프에서 특정 조건에 따라 조기에 종료하려면 ifreturn 방법의 조합을 사용할 수 있습니다. 이 방법은 특정 조건이 충족될 때 루프 실행을 중단하고 호출자에게 제어권을 반환해야 할 때 특히 유용합니다.

루프 내에서 if 문을 사용하여 루프 종료 조건을 평가합니다. 조건이 참으로 평가되면, return 문이 실행되어 루프 실행이 즉시 종료되고 제어권이 호출자에게 반환됩니다.

$numbers = "one", "two", "three", "four", "five"

$numbers | ForEach-Object {
    if ($_ -eq "three") {
        return
    }
    Write-Host "The number is $_."
}

제공된 코드 조각에서는 숫자를 나타내는 문자열을 포함하는 배열 $numbers를 초기화합니다. foreach-object 루프 내에서 배열의 각 항목을 반복합니다.

if 문을 사용하여 현재 항목 $_three와 같은지 확인합니다. 조건이 참으로 평가되면, return을 사용하여 루프에서 즉시 종료합니다.

그렇지 않으면 루프가 계속되고, 현재 숫자를 Write-Host를 사용하여 출력합니다.

출력:

파워셸에서 foreach 객체에서 종료 - 출력 3

PowerShell에서 ForEach-Object 종료를 위한 ifcontinue 사용

PowerShell에서 continue 문은 루프의 현재 반복의 나머지를 건너뛰고 다음 반복으로 진행하는 데 사용됩니다. 주로 특정 반복을 건너뛰기 위해 루프에서 사용되지만, foreach-object 루프 내에서 루프 종료 형식을 구현하는 데도 사용할 수 있습니다.

루프 내에서 continue 문을 전략적으로 배치하고 조건부 논리를 통합함으로써 특정 조건에 따라 루프의 조기 종료를 달성할 수 있습니다.

$numbers = 1..10

$numbers | ForEach-Object {
    if ($_ -eq 5) {
        continue
    }
    Write-Host "Number: $_"
}

제공된 코드 예제에서는 1에서 10까지의 숫자를 포함하는 배열 $numbers를 초기화합니다. foreach-object 루프 내에서 배열의 각 숫자를 반복합니다.

if 문을 사용하여 현재 숫자가 5와 같은지 확인합니다. 조건이 참으로 평가되면, continue 문이 실행되어 현재 반복을 건너뛰고 다음으로 진행하게 됩니다.

이로 인해 지정된 조건이 충족될 때 루프가 조기에 종료됩니다.

출력:

파워셸에서 foreach 객체에서 종료 - 출력 4

결론

요약하자면, PowerShell의 ForEach-Object cmdlet은 컬렉션을 반복하며 각 항목에 대해 개별적으로 작업할 수 있도록 합니다. 우리는 ForEach-Object 루프에서 조기에 종료하는 다양한 방법을 탐구했습니다. break, return, continue 사용을 포함하여.

breakcontinue는 루프 내에서 직접적인 흐름 제어를 제공하고, return은 루프에서 종료하고 호출자로 돌아가는 대체 방법을 제공합니다. 각 방법은 고유한 사용 사례와 이점을 가지고 있어 스크립트 실행의 유연성을 제공합니다.

앞으로 사용자들은 이러한 방법을 다양한 시나리오에서 실험함으로써 이해를 더욱 깊게 하고 그 뉘앙스를 탐구하며 PowerShell 스크립팅에서의 적용을 마스터할 수 있습니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell Object