在 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