如果我创建一个参数类型为 的 PowerShell 函数[scriptblock]
,哪种方法最适合执行函数内的脚本块?为什么?
我知道以下选项:
.
源算子&
(呼叫)操作员Invoke-Expression
.
在当前范围内运行脚本块。在子&
作用域中运行 scriptblock (与通过其方法运行 scripblock 相同)。您想使用哪一种取决于您想要实现的结果。Invoke()
示范:
通过方法运行Invoke()
:
PS C:\> $s = { $a = 2; $a } PS C:\> $a = 1 PS C:\> $s.Invoke() 2 PS C:\> $a 1
通过调用操作符运行:
PS C:\> $s = { $a = 2; $a } PS C:\> $a = 1 PS C:\> & $s 2 PS C:\> $a 1
通过点采购运算符运行:
PS C:\> $s = { $a = 2; $a } PS C:\> $a = 1 PS C:\> . $s 2 PS C:\> $a 2
如果您需要脚本块修改当前范围内的某些内容:请使用.
运算符。否则使用调用运算符或Invoke()
方法。
归档时间: |
|
查看次数: |
520 次 |
最近记录: |