Мне нравится думать, что я довольно хорошо с PowerShell, но я немного озадачен здесь.
У меня есть GIANT список файлов, которые я собираюсь запустить этот код на который даст мне необходимую информацию о файле, что я буду работать аналитику на. Шаг один только получение списка файлов. Так что я запускаю это.
Get-ChildItem $path -Recurse
Это возвращает кучу бесполезной информации, но она также дает мне море красного цвета. Там тонны файлов и папок, которые не могут быть найдены и явно не откажи мне. Я хочу, чтобы поймать все эти ошибки, так что я могу разобрать их к соответствующей информации, так что моя интуиция говорит мне, чтобы использовать Try / Catch.
Обычно вы используете Try / Выгоду для сообщений об ошибках магазина в цикле где-то за пределы цикла, и это прекрасно работает. Но я на самом деле не цикл, чтобы продолжать. Я не уверен, что теперь делать. Вот исходный код у меня есть.
function Get-FileInfo {
Param(
[Parameter(Mandatory=$True,Position=0)]
[ValidateNotNull()]
[string]$path
)
$global:errorInfo = @()
Write-Host I started!
Try {
Write-Host I started the Try Statement!
$fileInfo = Get-ChildItem $path -Recurse -ErrorAction Stop
Write-Host I finished the main pull!
Return $fileInfo
}
Catch {
Write-Host I started the Catch Statement!
$errorObj = New-Object PSObject
Add-Member -inputObject $errorObj -memberType NoteProperty -name “Type” -value $_.Exception.Message
Add-Member -inputObject $errorObj -memberType NoteProperty -name “Item” -value $_.Exception.ItemName
$errorInfo += $errorObj
Continue
}
}
Я уверен, что вы видите проблему. Я хочу, чтобы захватить ошибки, которые неизбежно возникают в блоке Try, но я на самом деле не имею петли. Я не очень понимаю, как установить это как цикл, чтобы сделать вещи лучше.
Если я запускаю этот код, он будет писать «Я начал!» а затем «Я начал заявление Try» почти сразу же после этого. Тогда он будет работать в течение приблизительно минуты. Тогда я получаю «Я начал заявление Лови!» и он сразу же заканчивается. Это имеет смысл, почему это происходит, но это, очевидно, не намеченный результат.
Могу ли я просто думать об этом неправильно?