【问题标题】:How to save a function into a variable?如何将函数保存到变量中?
【发布时间】:2017-12-01 07:37:24
【问题描述】:

如何将函数保存到变量中?

function sayHello {
    write-host Hello, world!
}

$a = sayHello

那么,我想打电话给$a

另一个例子:

$a = get-childItem
$a -name

【问题讨论】:

  • 为什么有人要这样做?并且 $a -name 会抛出错误,因为 $a 将保存 get-childitem 的内容。不是从 $a 执行的点网库类。

标签: powershell


【解决方案1】:

您可以使用function 变量范围限定符来引用函数定义本身:

$helloFunc = $function:sayHello

现在您可以使用调用运算符 (&) 调用它:

& $helloFunc

调用运算符也支持参数:

PS C:\> function test-param {param($a,$b) $b,$a |Write-Host}
PS C:\> $tp = ${function:test-param}
PS C:\> & $tp 123 456
456
123
PS C:\> & $tp -b 123 -a 456
123
456

【讨论】:

  • 美丽。我根本不知道这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
相关资源
最近更新 更多