[英]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.