在 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