0

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

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

有时它会返回正确的数字,有时则不会。这是正确的方法吗?还有其他方法吗?

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

4

2 回答 2

1

为什么你没有param在你的函数中使用并强制它们?

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

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

于 2013-02-15T11:36:18.530 回答
1

尝试包装 $()。例如:

$someVar = "line $($MyInvocation.ScriptLineNumber): at least 2 arguments needed, function has been called with only $($args.Count) arguments"
于 2013-02-15T14:49:19.853 回答