使用 PowerShell 函数传递和获取值

Posted

技术标签:

【中文标题】使用 PowerShell 函数传递和获取值【英文标题】:Working with PowerShell functions passing and getting values 【发布时间】:2011-08-21 09:42:30 【问题描述】:

PowerShell 脚本从命令行运行。

当尝试在脚本中传递参数时,当调用函数以传递值时,没有出现任何值,我尝试在函数内使用范围和参数。

【问题讨论】:

您能用您尝试过的一些代码示例来更新您的问题吗?如果没有,很难说你做错了什么。 【参考方案1】:

您的脚本中的示例将非常有助于为您提供准确的答案。也就是说,这是一个通用答案,它显示了 PowerShell 中具有函数和不具有函数的脚本。

Function Sum 
    Param ([int]$a,[int]$b)

    return $a+$b

因此,当您在脚本中包含此内容时,您可以点源脚本。因此,您可以直接从 cmdline 调用该函数。例如

Sum 4 5 将返回 9。

现在,没有函数,让我们说 sum.ps1 有以下代码:

Param ([int]$a,[int]$b)
$a+$b

您可以在控制台或任何地方调用.\sum.ps1 4 5,它会再次返回9。

根本没有必要使用param()。您可以使用 $args 数组来检索参数。但是,将参数绑定到类型并使用 Param() 为它们命名是有意义的

【讨论】:

【参考方案2】:

您是否要在脚本中调用特定函数?您可以通过 .sourcing 然后调用来做到这一点。这里我们调用 utils.ps1 中定义的函数 sign-script,将参数 somescript.ps1 传递给函数。

. .\utils.ps1;sign-script somescript.ps1

注意行首的多余点

【讨论】:

以上是关于使用 PowerShell 函数传递和获取值的主要内容,如果未能解决你的问题,请参考以下文章

运行从 PowerShell 显式获取参数的 Python 函数(无需单独传递参数)

如何在不连接 Powershell 的情况下传递参数? [复制]

如何使用 PowerShell 和 SQLCMD 获取存储过程返回值?

Thycotic Secret Server将信用证传递给Powershell

如何获取注册表项的值,并且仅使用 powershell 获取值

如何使用 PowerShell 脚本使用函数应用默认密钥和服务总线连接字符串更新 Key Vault 机密