gpt4 book ai didi

powershell - 在 Powershell 6.0 中设置变量默认值的优雅方式?

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

我有以下内容,它可以工作但看起来很笨重:

if($config.contentDir){ 
$contentDir = $config.contentDir
} else {
$contentDir = "contents"
}

有更好的方法吗?我看过这个答案here ,但它并不完全“更好”。只是想知道 6.0 是否带来了任何改进?

我可能要处理大量的配置选项,所以它会变得相当困惑。

最佳答案

这个有点短...

$contentDir = if ( $config.contentDir ) { $config.contentDir } else { "contents" }

你也可以定义一个iif函数:

function iif {
param(
[ScriptBlock] $testExpr,
[ScriptBlock] $trueExpr,
[ScriptBlock] $falseExpr
)
if ( & $testExpr ) {
& $trueExpr
}
else {
& $falseExpr
}
}

那么你可以缩短为:

$contentDir = iif { $config.contentDir } { $config.contentDir } { "contents" }

顺便说一句,看起来下一个版本的 PowerShell 将支持 ternary operator (参见 https://devblogs.microsoft.com/powershell/powershell-7-preview-4/ ),所以在未来,您将能够编写如下内容:

$contentDir = $config.contentDir ? $config.contentDir : "contents"

关于powershell - 在 Powershell 6.0 中设置变量默认值的优雅方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58070168/

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