blu*_*eys 15 powershell refactoring
我写了类似的东西来指定提示的默认值.
$defaultValue = 'default'
$prompt = Read-Host "Press enter to accept the default [$($defaultValue)]"
if ($prompt -eq "") {} else {
$defaultValue = $prompt
}
Run Code Online (Sandbox Code Playgroud)
可以进一步缩短吗?
这是我的尝试.
$defaultValue = 'default'
$prompt = Read-Host "Press enter to accept the default [$($defaultValue)]"
if (!$prompt -eq "") {$defaultValue = $prompt}
Run Code Online (Sandbox Code Playgroud)
我想要一个单行,所以在那之前我会坚持接受答案.
Nb $defaultValue应独立于一个衬管存放.与上面的例子类似.
我接受了答案,它引导我找到我想要的解决方案.
$defaultValue = 'default'
if (($result = Read-Host "Press enter to accept default value $defaultValue") -eq '') {$defaultValue} else {$result}
Run Code Online (Sandbox Code Playgroud)
对于那些问你原因的人.原因是因为跟随我的人眼睛更容易.在不牺牲清晰度的情况下,总是更少.恕我直言.
编辑;
而不是一行,也许我应该说一个短语?我添加了这个编辑澄清,而我看到的一些答案使用的是分号.
mjo*_*nor 22
$defaultValue = 'default'
$prompt = Read-Host "Press enter to accept the default [$($defaultValue)]"
$prompt = ($defaultValue,$prompt)[[bool]$prompt]
Run Code Online (Sandbox Code Playgroud)
如果你绝对必须在一行中:
$defaultValue = 'default'
($defaultValue,(Read-Host "Press enter to accept the default [$($defaultValue)]")) -match '\S' |% {$prompt = $_}
Run Code Online (Sandbox Code Playgroud)
小智 15
我能想到的最短版本:
if (!($value = Read-Host "Value [$default]")) { $value = $default }
Run Code Online (Sandbox Code Playgroud)
此版本不必使用其他。
ojk*_*ojk 11
if(($result = Read-Host "Press enter to accept default value [default]") -eq ''){"default"}else{$result}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26482 次 |
| 最近记录: |