gpt4 book ai didi

dynamic - 如何在Powershell中传递动态参数?

转载 作者:行者123 更新时间:2023-12-04 03:08:47 24 4
gpt4 key购买 nike

我想使用动态数量的参数调用现有的命令行开关。

所以我不想这样做(以写主机为例),我想以聪明的方式来做。

# these are the dynamic parameters which maybe get passed into my function or script
# they would be $null be default of course
$forecolor = 'Green'
$newline = $true

# now build the "dynamic" write-host...
if ($forecolor) {
if ($newline) {
write-host -fore $forecolor "Hello world"
}
else {
write-host -fore $forecolor "Hello world" -nonewline
}
}
else {
if ($newline) {
write-host "Hello world"
}
else {
write-host "Hello world" -nonewline
}
}

这当然是非常丑陋的。帮我弄得更漂亮!

我已经尝试过设置 $forecolor = '-fore Green'只输出“-fore Green Hello world”。我可以考虑将参数列表传递给函数,并为列表中的每个参数添加相应的参数 - 我只是不知道如何保存参数。

最佳答案

您可以将变量作为参数传递给 Write-Host :

Write-Host -Fore $forecolor -NoNewLine:(!$newline) 'Hello World'

对于真正动态的方式,您可以使用哈希表:
$params = @{ NoNewLine = $true; ForegroundColor = 'Green' }

然后使用 splat 运算符
Write-Host @params Hello World

在调用 Write-Host 之前,您可以根据需要将参数及其值添加到哈希表中。那样。

关于dynamic - 如何在Powershell中传递动态参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11152456/

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