当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Read-Host (Microsoft.PowerShell.Utility)

作者:精品下载站 日期:2024-12-14 02:04:37 浏览:12 分类:玩电脑

Read-Host (Microsoft.PowerShell.Utility)


Read-Host

模块 :Microsoft.PowerShell.Utility

从控制台读取一行输入。

句法

Read-Host
    [[-Prompt] <Object>]
    [-MaskInput]
    [<CommonParameters>]
Read-Host
    [[-Prompt] <Object>]
    [-AsSecureString]
    [<CommonParameters>]

描述

Read-Host cmdlet 从控制台 (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

示例 4:标准化输入

此示例提示用户输入以分号分隔的城市列表。它显示用户输入的字符串值。在示例中,用户在一些条目之间添加了空格。这可能会导致稍后在脚本中出现错误,其中代码需要确切的名称。

该示例展示了如何将输入字符串转换为不带任何额外空格的条目数组。

$prompt = @(
    'List the cities you want weather information for.'
    'When specifying multiple cities, separate them with a semi-colon, like:'
    "'New York; Osan; Koforidua'"
) -join ' '

$cities = Read-Host $prompt

"Input cities string: `n`t'$cities'"

$splitCities = $cities -split ';'

"Split cities array:"
$splitCities | ForEach-Object -Process { "`t'$_'" }

$normalizedCities = $splitCities  | ForEach-Object -Process { $_.Trim() }

"Normalized split cities array:"
$normalizedCities | ForEach-Object -Process { "`t'$_'" }

Input cities string:
        '    New York;  Osan   ;Koforidua   '
Split cities array:
        '    New York'
        '  Osan   '
        'Koforidua   '
Normalized split cities array:
        'New York'
        'Osan'
        'Koforidua'

该示例使用 -split 运算符将输入字符串转换为字符串数组。数组中的每个字符串都包含不同城市的名称。但是,分割字符串包含额外的空格。 Trim() 方法删除每个字符串的前导和尾随空格。

参数

-AsSecureString

指示 cmdlet 显示星号 (*) 来代替用户作为输入键入的字符。使用此参数时,Read-Host cmdlet 的输出是一个 SecureString 对象 (System.Security.SecureString)。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-MaskInput

指示 cmdlet 显示星号 (*) 来代替用户作为输入键入的字符。使用此参数时,Read-Host cmdlet 的输出是一个String 对象。这允许您安全地提示输入以明文形式返回的密码,而不是SecureString

此参数是在 PowerShell 7.1 中添加的。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Prompt

指定提示的文本。输入一个字符串。如果字符串包含空格,请将其括在引号中。 PowerShell 会在您输入的文本后面附加一个冒号 (:)。

类型 :

目的

位置:

0

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

您无法通过管道将对象传递到此 cmdlet。

输出

字符串

默认情况下,此 cmdlet 返回一个字符串。

安全字符串

当您使用 AsSecureString 参数时,此 cmdlet 将返回 SecureString

笔记

此 cmdlet 仅从主机进程的标准输入流中读取。通常,标准输入流连接到主机控制台的键盘。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯