在Powershell中使用foreach循环返回True/False的函数

在Powershell中使用foreach循环返回True/False的函数,powershell,Powershell,我有一个PowerShell函数,它接收一个数字并创建那么多用户 该函数有一个简单的foreach,它循环遍历1和发送给该函数的参数之间的所有数字。 在循环内部有一个try-and-catch块来运行我需要的命令并处理错误 我的问题是,只有在创建了所有用户之后,如何才能使函数返回$true 提前感谢您的帮助。您可以这样做: function Add-SomeStuff { param ( [Parameter(Mandatory)][int]$NumberOfUsers )

我有一个PowerShell函数,它接收一个数字并创建那么多用户

该函数有一个简单的foreach,它循环遍历1和发送给该函数的参数之间的所有数字。 在循环内部有一个try-and-catch块来运行我需要的命令并处理错误

我的问题是,只有在创建了所有用户之后,如何才能使函数返回$true


提前感谢您的帮助。

您可以这样做:

function Add-SomeStuff {
  param (
    [Parameter(Mandatory)][int]$NumberOfUsers
  )
  [bool] $toReturn = $true
  foreach ($i in 1..$NumberOfUsers) {
    try {
      # In some case, your function here could return the value
      # and have an impact on toReturn's value
    }
    catch {
      $toReturn = $false
    }
  }

  return $toReturn
}
如果您的特定代码返回一个布尔值(例如,该布尔值表示用户是否已成功添加),则可能会在try中修改toReturn值。 在这种情况下,您可以执行以下操作:
$toReturn=$toReturn-和$Add User…

计算成功迭代的次数,并确保它们与收到的次数匹配。您是否有一个未按预期工作的参数?这意味着在成功创建用户后,我必须添加一个计数器,并且在for each循环结束后,我会将其与函数收到的原始参数进行比较?我想这会解决问题。谢谢:另一个选项是初始设置$result=$true,并在catchblok中设置$result=$false。仍然需要一个额外的变量,但它有点简单。@LievenKeersmaekers-唯一的问题是,这个问题中没有提供代码。在没有看到代码的情况下,我们不能保证任何其他部分都会出现异常。可能已创建所有用户。。。然后其他的东西可能会失败,而FALSE可能会被错误地报告。