在 PowerShell 中提示用户输入
Rohan Timalsina
2023年1月30日
2022年5月16日
你可能会提示用户在你的 PowerShell 脚本中输入一些值。从用户那里读取输入是任何编程语言的基本特征。
PowerShell 还支持从用户读取值作为输入。本文将介绍在 PowerShell 中提示用户输入的不同方法。
在 PowerShell 中使用 Read-Host
提示用户输入
Read-Host
cmdlet 提示用户输入并从控制台读取一行输入。Read-Host
只能接受 1022
个字符作为用户的输入。
-Prompt
参数用于指定文本以提供有关输入内容的信息。它会在你输入的文本后面附加一个冒号:
。
例如:
Read-Host -Prompt "Enter your name"
输出:
Enter your name: Rohan
Rohan
Read-Host
暂停执行并接收输入。当用户在提示符处输入值时,它会返回相同的值。
它不接受来自 PowerShell 管道的输入。这是另一个例子:
$age = Read-Host -Prompt "Enter your age"
Write-Output "You are $age years old."
输出:
Enter your age: 21
You are 21 years old.
Read-Host
cmdlet 允许你将输入保存为安全字符串。你可以使用此 cmdlet 提示用户输入安全数据,例如密码。
参数 -AsSecureString
显示星号 *
代替用户作为输入输入的字符。使用此参数,Read-Host
的输出是 System.Security.SecureString
对象。
Read-Host "Enter password" -AsSecureString
输出:
Enter password: ******
System.Security.SecureString
在 PowerShell 中使用 Mandatory
参数提示用户输入
你可以使用 mandatory
参数在执行期间提示用户在 PowerShell 脚本或函数中输入。
这是函数 Name
的示例,它在运行时要求用户输入。
function Name {
param(
[Parameter(Mandatory)]
[string]$name
)
Write-Output "Your name is $name."
}
运行函数:
Name
输出:
cmdlet Name at command pipeline position 1
Supply values for the following parameters:
name: Rohan
Your name is Rohan.
Author: Rohan Timalsina