powershell foreach vs foreach object
Ir al siguiente elemento en ForEach-Object (2)
Tengo una secuencia de comandos de PowerShell que realiza algunas comprobaciones en todos los administradores de dominio en varios dominios. Para cada cuenta de usuario se realizan varios controles. Cuando uno de ellos falla, el script debe ir al siguiente administrador en la lista.
Actualmente tengo algo como esto (simplificado):
Get-QADGroupMember "Domain Admins" | Select-Object SamAccountName | ForEach-Object {
#Do something
if(!ThisCheckIsOK)
{
break;
}
#Do something else
if(ThisCheckIsNotOK)
{
break;
}
...
}
Esto detiene todo el script. ¿Hay alguna manera de ir al siguiente elemento?
$foreach.movenext()
no funciona ya que $foreach
es null
.
Es posible que desee utilizar la instrucción Continue
para continuar con el bucle más interno.
Extracto del archivo de ayuda de PowerShell
:
En una secuencia de comandos, la instrucción
continue
hace que el flujo del programa se mueva inmediatamente a la parte superior del bucle más interno controlado por cualquiera de estas declaraciones:
for
foreach
while
Sólo tienes que reemplazar la break
con una declaración de return
.
Piense en el código dentro del Foreach-Object
como una función anónima. Si tiene bucles dentro de la función, solo use las palabras clave de control que se aplican a la construcción ( continue
, break
, ...).