Рассмотрим следующий действительно простой код:
Try {
Copy-Item -Path '\\server\g$\thisfolder\thisfiledoesntexist.ini' -Destination 'c:\temp' -ErrorAction Stop
}
Catch {
"Ran into an issue: $_"
}
Это будет хорошо работать, чтобы перехватить ошибку для несуществующего файла souce.Однако следующее не будет - нет сгенерированной ошибки.
Try {
Copy-Item -LiteralPath '\\?\UNC\server\g$\thisfolder\thisfiledoesntexist.ini' -Destination 'c:\temp' -ErrorAction Stop
}
Catch {
"Ran into an issue: $_"
}
Однако ... это БУДЕТ перехватывать ошибку
Try {
Get-ChildItem -LiteralPath '\\?\UNC\server\g$\thisfolder\thisfiledoesntexist.ini' -ErrorAction Stop | Copy-Item
}
Catch {
"Ran into an issue: $_"
}
Это первый раз, когда я имел возможность использоватьБуквальные пути - это поведение предполагается / ожидается?