gpt4 book ai didi

powershell - Powershell 中的 Foreach 错误处理

转载 作者:行者123 更新时间:2023-12-01 10:52:09 25 4
gpt4 key购买 nike

有没有办法在 foreach 循环中捕获和保存坏名?我有以下内容:

$CollectionName = "Import Test"
$PCName = Import-Csv "C:\Powershell\import_test.csv"
foreach($computer in $PCName) {
Add-CMDeviceCollectionDirectMembershipRule -CollectionName $CollectionName -ResourceID $(Get- CMDevice -Name $computer.computername).ResourceID
}

我想做的是,如果 csv 中有一个错误的名称,那么不要显示我目前得到的“无法验证参数”错误,而是将失败的名称输出到一个文本文件。

谢谢

最佳答案

是的。将语句放入循环中的 try..catch block :

foreach($computer in $PCName) {
try {
Add-CMDeviceCollectionDirectMembershipRule ...
} catch {
"Bad name: $name" | Out-File 'C:\bad_names.txt' -Append
}
}

如果错误是非终止错误(即显示错误消息,但未被 try..catch 捕获),您可以通过添加 -ErrorAction Stop 将其变为终止错误到命令或通过设置 $ErrorActionPreference = "Stop" .

关于powershell - Powershell 中的 Foreach 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17796560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com