1

ユーザーが入力した任意の数をカウントダウンするスクリプトを作成しようとしています。

Write-Host "$Value1"

[int]$Value1 - [int]1

do {
$outputString = read-host
$outputString - [int]1
}

until ($outputstring=0)

$Value1ユーザーが入力する数を定義します。初期値は1で減算され、その後$outputString、読み取りホスト情報を取得し、0に達するまで1を減算する必要があるようです。この時点で、私が取得する唯一の出力ははWrite-Host" [int]$Value1 - [int]1"であり、出力は1で減算されます。ただし、0に達するまでループしません。この問題を修正する方法はありますか?ご挨拶

4

2 に答える 2

1

試す :

do {
$outputString = read-host
$outputString -= [int]1
}
until ($outputstring -eq 0)

まず、egal演算子はそうでは-eqありません=

次に$outputstring、ループを解除する場合は、に値を割り当てる必要があります。

$outputString -= [int]1
$outputString = $outputString - [int]1
于 2012-11-30T13:14:21.343 に答える
1

これはどう?

do {
    $outputString = read-host enter a number
} while ($outputstring -notmatch '^\d+$')

if($outputstring -gt 0)
{
    $outputstring..0 | ForEach-Object{
        $_
        Start-Sleep -Milliseconds 250
    }
}
于 2012-11-30T14:42:23.727 に答える