簡體   English   中英

在日志文件中打印行號

[英]Print in a log file the line number

我試圖在我的函數中管理一些非標准錯誤(比如錯誤的輸入文本),我想通過在變量中寫入一種日志來跟蹤這些錯誤。 我正在嘗試寫行號,這是我的代碼

$someVar = "line $($MyInvocation.ScriptLineNumber): at least 2 arguments needed, function has been called with only $args.Count arguments"

有時它會返回正確的數字,有時則不會。 這是正確的方法嗎? 還有另一種方法嗎?

編輯:我發現這個問題可能與執行腳本的非常規方式有關,我使用這些腳本來繞過特定機器上的權限問題。 我會盡快發布一個更詳細的例子

你有沒有在你的職能中使用param並強制執行它們的原因?

Function A()
{
   Param
   (
      [Parameter(Mandatory=$true)][String]$Arg1,
      [Parameter(Mandatory=$true)][String]$Arg2
   )
   Write-Host "$Arg1 $Arg2"
}

如果你運行這個函數沒有任何參數,那么它將拋出一個錯誤,要求強制參數。

嘗試換入$()。 例如:

$someVar = "line $($MyInvocation.ScriptLineNumber): at least 2 arguments needed, function has been called with only $($args.Count) arguments"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM