Read-Host
从控制台读取一行输入。
语法
Read-Host
[[-Prompt] <Object>]
[-MaskInput]
[<CommonParameters>]
Read-Host
[[-Prompt] <Object>]
[-AsSecureString]
[<CommonParameters>]
说明
cmdlet Read-Host
从控制台 (stdin) 读取一行输入。 可使用它来提示用户输入数据。 由于可以将输入保存为安全字符串,因此可以使用此 cmdlet 提示用户输入安全数据,例如密码。
注意
Read-Host
限制为 1022 个字符,可以接受用户输入。
示例
示例 1:将控制台输入保存到变量
此示例显示字符串“请输入你的年龄:”作为提示。 输入值并按下 Enter 键时,该值将存储在 变量中 $Age
。
$Age = Read-Host "Please enter your age"
示例 2:将控制台输入另存为安全字符串
此示例显示字符串“输入密码:”作为提示。 输入值时,主机上会显示星号 (*
) 代替输入。 按下 Enter 键时,该值将作为 SecureString 对象存储在 变量中 $pwd_secure_string
。
$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString
示例 3:将输入 和 掩码为纯文本字符串
此示例显示字符串“输入密码:”作为提示。 输入值时,主机上会显示星号 (*
) 代替输入。 按下 Enter 键时,该值将作为纯文本 String 对象存储在 变量中 $pwd_string
。
$pwd_string = Read-Host "Enter a Password" -MaskInput
参数
-AsSecureString
指示 cmdlet 显示星号 (*
) 代替用户键入为输入的字符。 使用此参数时,cmdlet 的Read-Host
输出是 System.Security.SecureString) (SecureString 对象。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaskInput
指示 cmdlet 显示星号 (*
) 代替用户键入为输入的字符。 使用此参数时,cmdlet 的 Read-Host
输出是 String 对象。
这使你可以安全地提示输入以纯文本形式返回的密码,而不是 SecureString。
此参数已在 PowerShell 7.1 中添加。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Prompt
指定提示的文本。 键入一个字符串。 如果该字符串包含空格,请将其括在引号中。 PowerShell 将冒号 (:
) 追加到输入的文本。
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
None
此 cmdlet 不接受来自 PowerShell 管道的输入。
输出
System.String or System.Security.SecureString
如果使用 AsSecureString 参数, Read-Host
则返回 SecureString。 否则,它将返回一个字符串。
备注
此 cmdlet 仅从主机进程的 stdin 流中读取。 通常,stdin 流连接到主机的键盘。