PowerShell에서 Foreach 객체에서 나가는 방법
-
PowerShell에서
ForEach-Object
종료를 위한break
조건 사용 -
PowerShell에서
ForEach-Object
종료를 위한if
와break
사용 -
PowerShell에서
ForEach-Object
종료를 위한if
와return
사용 -
PowerShell에서
ForEach-Object
종료를 위한if
와continue
사용 - 결론

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
로 설정하여 루프를 종료하게 됩니다.
출력:
PowerShell에서 ForEach-Object
종료를 위한 if
와 break
사용
때때로, 특정 조건에 따라 이 루프를 조기에 종료할 필요가 있습니다. 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-Object
종료를 위한 if
와 return
사용
PowerShell의 foreach-object
루프에서 특정 조건에 따라 조기에 종료하려면 if
와 return
방법의 조합을 사용할 수 있습니다. 이 방법은 특정 조건이 충족될 때 루프 실행을 중단하고 호출자에게 제어권을 반환해야 할 때 특히 유용합니다.
루프 내에서 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
를 사용하여 출력합니다.
출력:
PowerShell에서 ForEach-Object
종료를 위한 if
와 continue
사용
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
문이 실행되어 현재 반복을 건너뛰고 다음으로 진행하게 됩니다.
이로 인해 지정된 조건이 충족될 때 루프가 조기에 종료됩니다.
출력:
결론
요약하자면, PowerShell의 ForEach-Object
cmdlet은 컬렉션을 반복하며 각 항목에 대해 개별적으로 작업할 수 있도록 합니다. 우리는 ForEach-Object
루프에서 조기에 종료하는 다양한 방법을 탐구했습니다. break
, return
, continue
사용을 포함하여.
break
와 continue
는 루프 내에서 직접적인 흐름 제어를 제공하고, return
은 루프에서 종료하고 호출자로 돌아가는 대체 방법을 제공합니다. 각 방법은 고유한 사용 사례와 이점을 가지고 있어 스크립트 실행의 유연성을 제공합니다.
앞으로 사용자들은 이러한 방법을 다양한 시나리오에서 실험함으로써 이해를 더욱 깊게 하고 그 뉘앙스를 탐구하며 PowerShell 스크립팅에서의 적용을 마스터할 수 있습니다.