2013-06-21 40 views
10

我想在運行Powershell腳本時獲取錯誤的行號。這是我目前正在使用的:如何獲取Powershell中的錯誤行號

  $e = $_.Exception 
      $line = $_.Exception.InvocationInfo.ScriptLineNumber 
      $msg = $e.Message 

      Write-Host -ForegroundColor Red "caught exception: $e at $line" 

有時候,這有效,有時它不。我想知道我是否做錯了什麼,或者我能做些什麼來使這項工作更加一致。

+0

正在嘗試catch語句不給你你需要的信息?這是在一個捕獲? –

+0

沒有try/catch只給出錯誤。它沒有列出行號和內容。 – BlackHatSamurai

+0

我猜(雖然沒有例外,現在趕上)類似:catch {[Exception] $ _。ScriptLineNumber}可能會做到這一點...但我也只是趕上我的錯誤,並回應異常,它通常給我我所需要的。所以我很高興你找到了它。 –

回答

16

我想通了什麼問題是:

相反的:

  $e = $_.Exception 
      $line = $_.Exception.InvocationInfo.ScriptLineNumber 
      $msg = $e.Message 

      Write-Host -ForegroundColor Red "caught exception: $e at $line" 

它需要:

 $e = $_.Exception 
     $line = $_.InvocationInfo.ScriptLineNumber 
     $msg = $e.Message 

     Write-Host -ForegroundColor Red "caught exception: $e at $line" 
相關問題