gpt4 book ai didi

powershell - 如何将函数转换为脚本方法?

转载 作者:行者123 更新时间:2023-12-03 09:46:01 27 4
gpt4 key购买 nike

我有一个powershell函数,有没有办法把它转换成脚本方法?

function Do-Something {
Param(
$p1,
$p2
)
[...]
}

我试图以下面的方式将它转换为脚本方法,但它抛出异常。

$obj | add-member-membertype scriptmethod { $function:Do-Something }

最佳答案

此代码显示了两个示例。在我看来,第一个 Add-Member 显示了更好的方法,它更面向对象。

function Convert-PersonToText
{
param($Person)
'{0} {1}' -f $Person.FirstName, $Person.LastName
}

function Print-Something
{
Write-Host 'Something'
}

function New-Person
{
param($FirstName, $LastName)

$result = '' | select FirstName, LastName
$result.FirstName = $FirstName
$result.LastName = $LastName
Add-Member -InputObject $result -MemberType ScriptMethod -Name 'ToText' -Value { Convert-PersonToText -Person $this }
Add-Member -InputObject $result -MemberType ScriptMethod -Name 'Print' -Value ((Get-Command -Name 'Print-Something').ScriptBlock)
$result
}


$person = New-Person -FirstName 'John' -LastName 'Smith'
$person.ToText() | Out-Host
$person.Print()

输出:

John Smith
Something

关于powershell - 如何将函数转换为脚本方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48417711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com