我正在使用 PowerShell 5.1 進行編碼,并且在回圈中使用 Read-Host 時遇到了一個奇怪的問題。出于某種原因,當我按照下面的代碼向 Read-Host 輸入內容時,我總是在我的 PowerShell ISE 控制臺上輸出它。有沒有辦法重繪 輸入緩沖區,以免發生這種情況?
代碼:
function Test-Read{
for ($num = 1 ; $num -le 3 ; $num ){
Read-Host -Prompt "Test Prompt"
}
}
輸出:
Test Prompt: a
a
Test Prompt: b
b
Test Prompt: c
c
謝謝,奧羅拉
uj5u.com熱心網友回復:
在 PowerShell 中,除非被抑制或分配,否則來自單個陳述句的所有輸出都將“冒泡”到呼叫者(并最終到達螢屏緩沖區)。
將字串輸出分配Read-Host給變數,或將呼叫結果轉換為[void]:
function Test-Read{
for ($num = 1 ; $num -le 3 ; $num ){
# $null is a special automatic variable - assigning to it won't affect it, much like piping to NUL in cmd or `/dev/null` on a UNIX/POSIX system
$null = Read-Host -Prompt "Test Prompt"
}
}
或者
function Test-Read{
for ($num = 1 ; $num -le 3 ; $num ){
[void](Read-Host -Prompt "Test Prompt")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/348772.html
標籤:电源外壳
