PowerShell脚本中"."的作用及高级函数中的放置位置
问题2:若该函数为高级函数,"."应放置在何处?
高级函数的begin/process/end块本身运行在函数作用域内,但点运算符只能用于执行可执行的脚本块/脚本文件,不能直接放在process {这类块声明前(这就是你报错的原因)。正确的做法是把点运算符放在你要执行的嵌套脚本块前面,让这个嵌套脚本块在对应块的作用域内执行。
示例代码如下:
function Return-Url { [CmdletBinding()] param([string]$url) process { . { $rs = $url.ToString(); return } | Out-Null } end { return $rs } }
如果需要在begin或end块内实现类似逻辑,也是同样的写法——把点运算符加在具体的嵌套脚本块{ ... }之前即可。
内容的提问来源于stack exchange,提问作者Grot
相关产品推荐
相关产品推荐

