在日志文件中打印行号

时间:2013-02-15 11:27:18

标签: powershell line-numbers

我正在尝试在我的函数中管理一些非标准错误(比如错误的输入文本),我想通过在变量中写入一种日志来跟踪这些错误。我正在尝试写行号,这是我的代码

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

有时会返回正确的数字,有时则不会。这是正确的方法吗?还有另一种方法吗?

编辑:我发现这个问题可能与执行我用来绕过特定机器上的权限问题的脚本的非常规方式有关。我会尽快发布一个更详细的例子

2 个答案:

答案 0 :(得分:1)

您在功能中未使用param并强制执行这些功能的原因是什么?

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

如果你在没有任何参数的情况下运行这个函数,那么它将抛出一个错误,询问强制参数。

答案 1 :(得分:1)

尝试换入$()。例如:

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