在bash中我可以做这样的事情,name如果UserName没有设置,设置为默认值:
name=${UserName:-James}
Run Code Online (Sandbox Code Playgroud)
Powershell是否支持这样的事情?
使用函数和参数,我们可以做一些像我相信你正在做的事情。
一个函数示例:
function WriteUser
{
param($user = "A User",
$message = "Message")
Write-Host $user
Write-Host $message
}
Run Code Online (Sandbox Code Playgroud)
调用不带参数的函数
WriteUser
Run Code Online (Sandbox Code Playgroud)
会给你输出:
一个用户
信息
WriteUser -用户“我”-消息“错误”
会写出以下内容:
我
错误
一些额外的注意事项,您不必使用参数名称。
WriteUser "Bob" "All Systems Go" would work by the order of the parameters.
Run Code Online (Sandbox Code Playgroud)
您也可以切换命名参数的顺序:
WriteUser -message "Error" -user "user, user"
Run Code Online (Sandbox Code Playgroud)
该函数会将 传递给正确的参数。
否则,我相信你必须做一些事情来近似三元行为,例如:
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
}
Run Code Online (Sandbox Code Playgroud)
感谢这里的想法 函数文件还可以包括:
Set-Alias ~ Like-Tern -Option AllScope
Run Code Online (Sandbox Code Playgroud)
然后你会像这样使用它:
$var = ~ $Value : "Johnny"
Run Code Online (Sandbox Code Playgroud)
当然,~这完全是任意的,因为我无法${上班......
| 归档时间: |
|
| 查看次数: |
12278 次 |
| 最近记录: |