使用参数获取最后一个调用的方法

时间:2016-11-04 13:52:03

标签: powershell

我们说我有这个:

Function b
{
    Param([string] $a, [string]$b)

    (Get-PSCallStack | Select -First 1).InvocationInfo.Trim()
}

Function a
{
    b "plip" "plop"; Write-Host "a"
}

cls
a

如果我执行包含此代码的文件,我将获得

b "plip" "plop"; Write-Host "a"

实际上我想得到的地方:

b "plip" "plop";

所以基本上,我想进入" b",这个指令叫" b"以及它在代码中出现的参数。我可以尝试使用正则表达式来检查是否存在&#34 ;;"关闭指令,但我想知道PowerShell是否有更好的方法。

1 个答案:

答案 0 :(得分:1)

您可以使用InvocationInfo类的ScriptPosition内部属性来获取命令的脚本位置:

Function b
{
    Param([string] $a, [string]$b)

    [System.Management.Automation.InvocationInfo].InvokeMember(
        'ScriptPosition',
        'GetProperty, Instance, NonPublic',
        $null,
        (Get-PSCallStack | Select -First 1).InvocationInfo,
        $null
    ).Text
}