Вы должны использовать $_.InvocationInfo
свойства, например: ScriptName
, ScriptLineNumber
, OffsetInLine
, Line
.
Например, чтобы отформатировать информацию о положении в стиле Visual Studio:
trap {
Write-Host "$($_.InvocationInfo.ScriptName)($($_.InvocationInfo.ScriptLineNumber)): $($_.InvocationInfo.Line)"
}
Это напишет что-то вроде:
C:\TEMP\test2.ps1(8): Get-Item missing
Кроме того, вы можете просто использовать $_.InvocationInfo.PositionMessage
, см. Этот пост:
Как я могу получить описания исключений powershell в строку?