gpt4 book ai didi

powershell - 参数作为字符串的Powershell脚本 block

转载 作者:行者123 更新时间:2023-12-02 23:56:36 25 4
gpt4 key购买 nike

我是一个字符串,其中包含一个powershell脚本块:

$scriptBlock = 'Param (
[string]$param1,
[string]$param2,
[switch]$param3
)
Write-Output ('param1: {0}' -f $param1)
Write-Output ('param2: {0}' -f $param2)
Write-Output ('param3: {0}' -f $param3)'

在第二个字符串中,我具有脚本块的参数。

$arguments = '-param1 "param1Value" -param2 "param2Value" -param3'

我的问题是如何使用aruments字符串调用脚本块?

最佳答案

您的$scriptblock字符串分配在语法上是无效的,请使用here-string以避免转义':

$scriptBlock = @'
Param (
[string]$param1,
[string]$param2,
[switch]$param3
)
Write-Output ('param1: {0}' -f $param1)
Write-Output ('param2: {0}' -f $param2)
Write-Output ('param3: {0}' -f $param3)
'@

您可以使用 $scriptblock字符串的内容定义一个函数:
$functionName = "__command$(Get-Random)"
New-Item -Path function:\ -Name $functionName -Value $scriptBlock

然后使用 Invoke-Expression调用它:
$result = Invoke-Expression "$functionName $arguments"

并清理:
Remove-Item function:\$functionName

关于powershell - 参数作为字符串的Powershell脚本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43436993/

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