繁体   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