gpt4 book ai didi

powershell - PowerShell抑制 `$Error`中的特定错误

转载 作者:行者123 更新时间:2023-12-03 08:55:25 25 4
gpt4 key购买 nike

我试图弄清楚如何从$Error异常中清除变量System.IO.PathTooLongException,但仍将这些长路径收集在ArrayList中以备后用。

示例:

$LongPath1 = "\\domain.net\bnl\Other stuff\DEPARTMENTS\SITE\Administration\Plant\Securite\Bien etre\Bien etre\Bien-être au travail\Travaux de fin d'année\Other-Stuff"
$LongPath2 = "\\domain.net\bnl\Other stuff\DEPARTMENTS\SITE\Administration\Plant\Laboratoire\Sauvegarde PC\Bibliothèques\Documents\Sauvegarde dossier Labo\Laboratoire (sauvegarde 03-2014)\Laboratoire\Travaux en cours"

Get-ChildItem -Recurse -LiteralPath $LongPath1 -ErrorVariable e -ErrorAction SilentlyContinue
Get-ChildItem -Recurse -LiteralPath $LongPath2 -ErrorVariable +e -ErrorAction SilentlyContinue

$PathTooLong = New-Object System.Collections.ArrayList($null)

$e | where {$_.Exception -like 'System.IO.PathTooLongException*'} | ForEach {
$PathTooLong.Add($_.TargetObject) | Out-Null
}

$PathTooLong

如何从自动生成的 ErrorVariable变量中删除存储在 $Error'e'中的长路径的完全相同的错误?

尝试过:
Get-ChildItem -Recurse -LiteralPath $LongPath1 -ErrorVariable e -ErrorAction Ignore

我以为是个天才,就是使用 Ignore选项,这样 $Error变量不会自动填充,但是 ErrorVariable'e'保持为空以...

感谢您的帮助。

最佳答案

显然,这比我最初想象的要简单得多。这是我找到的答案:

$LongPath1 = "\\domain.net\bnl\Other stuff\DEPARTMENTS\SITE\Administration\Plant\Securite\Bien etre\Bien etre\Bien-être au travail\Travaux de fin d'année\Other-Stuff"
$LongPath2 = "\\domain.net\bnl\Other stuff\DEPARTMENTS\SITE\Administration\Plant\Laboratoire\Sauvegarde PC\Bibliothèques\Documents\Sauvegarde dossier Labo\Laboratoire (sauvegarde 03-2014)\Laboratoire\Travaux en cours"

Get-ChildItem -Recurse -LiteralPath $LongPath1 -ErrorVariable e -ErrorAction SilentlyContinue
Get-ChildItem -Recurse -LiteralPath $LongPath2 -ErrorVariable +e -ErrorAction SilentlyContinue

$PathTooLong = New-Object System.Collections.ArrayList($null)

$e | where {$_.Exception -like 'System.IO.PathTooLongException*'} | ForEach {
$PathTooLong.Add($_.TargetObject) | Out-Null
$Error.Remove($_)
}

$PathTooLong

我可以轻松删除 $Error.Remove($_)之类的错误。要爱PowerShell! :)

关于powershell - PowerShell抑制 `$Error`中的特定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27290238/

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