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