在 PowerShell 中提示用户输入

Rohan Timalsina 2023年1月30日 2022年5月16日
  1. 在 PowerShell 中使用 Read-Host 提示用户输入
  2. 在 PowerShell 中使用 Mandatory 参数提示用户输入
在 PowerShell 中提示用户输入

你可能会提示用户在你的 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.
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website