2016-04-15 14 views
1

Read-Hostコマンドレットを使用して複数の行をキャプチャする方法はありますか?Read-Hostを使用して複数行を入力する

私の現在のアプローチは少し厄介です(そして実際には動作しません):

line one `n line two `n line three

+0

手前で処理し、実際の改行で制御文字を置き換えますか? Read-Hostは明らかにテキストを解釈しません。 – Matt

+0

read-hostと定義されたbreakでdo whileループを試すことができます。 – Martin

答えて

0
while (1) { read-host | set r; if (!$r) {break}} 

PS> Send-MailMessage -SmtpServer 'smtp.domain.xxx' -From 'First Last <[email protected]>' -To 'First Last <[email protected]>' -Subject 'Testing' -Body (Read-Host 'Enter text') 
Enter text: line one `n line two `n line three 

結果の電子メールの本文は3行ではありません

空行で入力を終了します。

1

はあなたが唯一のラインのブランク/ホワイトスペースでループを終了

(@(While($l=(Read-Host).Trim()){$l}) -join("`n")) 

(読み取りホストを)あなただけの持っているところ、このような何かを試してみてください。

実際の変数ではなく$_を使用することができますが、私はそれが「気味の悪い」ので、私はそれをしません。

関連する問題