This question already has answers here:
Null coalescing in powershell
(10个答案)
4年前关闭。
在bash中,如果未设置
Powershell是否支持这样的功能?
WriteUser-用户“Me”-消息“错误”
将写以下内容:
几个额外的注释,您不必使用参数名称。
否则,我相信您将必须采取一些措施来近似三元行为,例如:
功能文件还可以包括:
(10个答案)
4年前关闭。
在bash中,如果未设置
name
,我可以执行以下操作将UserName
设置为默认值:name=${UserName:-James}
Powershell是否支持这样的功能?
最佳答案
使用函数和参数,我们可以做一些我相信您正在做的事情。
一个函数例子:
function WriteUser
{
param($user = "A User",
$message = "Message")
Write-Host $user
Write-Host $message
}
调用不带参数的函数WriteUser
将为您提供输出:WriteUser-用户“Me”-消息“错误”
将写以下内容:
几个额外的注释,您不必使用参数名称。
WriteUser "Bob" "All Systems Go" would work by the order of the parameters.
您还可以切换命名参数的顺序:WriteUser -message "Error" -user "user, user"
该函数会将放到正确的参数上。否则,我相信您将必须采取一些措施来近似三元行为,例如:
function Like-Tern
{
for ($i = 1; $i -lt $args.Count; $i++)
{
if ($args[$i] -eq ":")
{
$coord = $i
break
}
}
if ($coord -eq 0) { throw new System.Exception "No operator!" }
$toReturn
if ($args[$coord - 1] -eq "")
{
$toReturn = $args[$coord + 1]
}
else
{
$toReturn = $args[$coord -1]
}
return $toReturn
}
Credit for the idea here功能文件还可以包括:
Set-Alias ~ Like-Tern -Option AllScope
然后,您可以像这样使用它:$var = ~ $Value : "Johnny"
当然,~
完全是任意的,因为我无法使${
正常工作...关于powershell - 在Powershell中设置变量的默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39154887/