Read-Host でデフォルト値を使用するためのワンライナーはありますか? 質問する

Read-Host でデフォルト値を使用するためのワンライナーはありますか? 質問する

プロンプトのデフォルト値を指定するために、次のようなものを書きました。

$defaultValue = 'default'
$prompt = Read-Host "Press enter to accept the default [$($defaultValue)]"
if ($prompt -eq "") {} else {
    $defaultValue = $prompt
    }

さらに短くすることはできますか?

これが私の試みです。

$defaultValue = 'default'
$prompt = Read-Host "Press enter to accept the default [$($defaultValue)]"
if (!$prompt -eq "") {$defaultValue = $prompt}

ワンライナーが欲しいので、それまでは回答を待つつもりです。

Nb は$defaultValueワンライナーとは独立して保存する必要があります。上記の例と同様です。

私は、探していた解決策に導いてくれた答えを受け入れました。

$defaultValue = 'default'
if (($result = Read-Host "Press enter to accept default value $defaultValue") -eq '') {$defaultValue} else {$result}

なぜかと聞かれるかもしれませんが、それは、私の後に来る人にとっては目が楽だからです。明瞭さを犠牲にしない限り、少ないことは常に多いことです。私の意見です。

編集;

1 行ではなく、1 つのフレーズにすべきだったのではないでしょうか。私が見た回答のいくつかではセミコロンが使用されていましたが、この編集を追加して明確にしました。

ベストアンサー1

私が思いついた最も短いバージョン:

if (!($value = Read-Host "Value [$default]")) { $value = $default }

このバージョンでは else を使用する必要はありません。

おすすめ記事