在 Windows PowerShell 脚本中使用 Read-Host cmdlet
运行脚本时,可以使用 Read-Host cmdlet 获取用户的输入。 用户输入请求可以是启动脚本的提示,也可以是基于脚本中已发生的处理结果。 例如,在对 Active Directory 域服务 (AD DS) 用户对象执行查询并显示检索到的对象数后,脚本可能会提示决定是继续还是停止。 或者,脚本可以请求要搜索的特定事件 ID。 Read-Host cmdlet 的语法为:
$answer = Read-Host "How many days"
上一个示例停止处理脚本,并按如下方式提示用户使用文本:
How many days:
在提示符下,用户输入响应,然后选择 Enter。 用户提供的响应放置在变量 $answer 中。
使用 Read-Host 来显示文本时,始终将冒号 () 追加到文本的末尾:。 没有用于抑制行为的参数。 但是,如果使用 Read-Host 而不显示文本,则不会显示冒号。 可以将 Write-Host 命令与 Read-Host 组合在一起,以显示文本并避免追加冒号,如以下示例所示:
Write-Host "How many days? " -NoNewline
$answer = Read-Host
注意
来自 Read-Host 的输入限制为 1022 个字符。
可以使用 -MaskInput 或 -AsSecureString 参数在提示符处屏蔽输入用户。 这两个参数都会导致用户输入的字符显示为星号 (*)。 使用 -MaskInput 时,响应将收集为 String 对象。 使用 -AsSecureString 时,响应将作为 SecureString 对象收集。 对于设置密码等方案,需要 SecureString 对象,其中数据不应作为明文存储在内存中。