首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Powershell中调用Scriptblock作为函数参数

如何在Powershell中调用Scriptblock作为函数参数
EN

Stack Overflow用户
提问于 2019-10-04 11:51:03
回答 1查看 292关注 0票数 0

我希望有一个函数来运行不同的 Scriptblock ,因此,我需要使用脚本块作为函数的参数。它不起作用。

例如。此函数以字符串的形式返回ScriptBlock。

代码语言:javascript
复制
function Run_Scriptblock($SB) {
    return $SB
}

这些是我的尝试的结果:

代码语言:javascript
复制
# 1st try
Run_Scriptblock {systeminfo}

>> systeminfo


# 2nd try
Run_Scriptblock systeminfo

>> systeminfo


# 3rd try
Run_Scriptblock [scriptblock]systeminfo

>> [scriptblock]systeminfo


# 4th try
$Command = [scriptblock]{systeminfo}
Run_Scriptblock $Command

>> [scriptblock]systeminfo


# 5th try
[scriptblock]$Command = {systeminfo}
Run_Scriptblock $Command

>> systeminfo
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-04 12:05:00

如果您希望某个函数运行scriptblock,则需要实际调用或调用该scriptblock,即

代码语言:javascript
复制
function Run_Scriptblock($SB) {
    $SB.Invoke()
}

代码语言:javascript
复制
function Run_Scriptblock($SB) {
    & $SB
}

否则,函数将返回字符串形式的scriptblock定义。不需要return关键字,因为默认情况下,PowerShell函数返回所有未捕获的输出。

该函数的调用方式如下:

代码语言:javascript
复制
Run_Scriptblock {systeminfo}

作为附带说明,我建议您考虑按照PowerShell约定命名您的函数(<Verb>-<Noun>使用认可动词 )。

代码语言:javascript
复制
function Invoke-Scriptblock($SB) {
    ...
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58235882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档