有没有一种方法可以使用Read-Host
小工具来捕获多行?
我现在的方法有点笨拙(而且不太有效):
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
生成的电子邮件正文不是三行:line one
n line two n line three
5条答案
按热度按时间flvlnr441#
空行结束输入。
nue99wik2#
我知道这是晚了,但我真的很喜欢@majkinetor的答案,但它仍然需要改进,因为输入不会被采取。我这样改进了答案:
它做了几乎相同的事情,
$r
是每行输入,但随后它将其添加到变量$test
。这实际上也会保存输入。如果你想允许换行符,我只需要添加这将使
<br>
作为一个回车符,但你可以把它改为任何你喜欢的东西,比如:cbeh67ev3#
尝试这样的东西,你只是有(读主机)
您以一个仅包含空白/空格的行退出循环。
你可以使用
$_
而不是一个真实的变量,但我觉得这“令人毛骨悚然”,所以我不这样做。3qpi33ja4#
一个轻度优化的函数,用于将多行输入读取到字符串中:
输出逗号分隔字符串的用法示例:
s4n0splo5#
没有办法简单地使用
Read-Host
,你需要发挥创造力。我有一个非常复杂的函数可以解决这个问题。它可以在一个特殊的组合键(Ctrl + Q)、3个换行符或大约5秒的不活动时退出。
它基于“Elavarasan Muthuvalavan - Lee”提供的脚本:Waiting for user input with a timeout