1

Powershell スクリプトの割り当てで再び問題が発生したため、もう一度ご連絡いたします。私の現在の任務は、ユーザーが 1 ~ 10 個の値を入力できるようにするスクリプトを作成することです。値は正の数でなければなりません。その後、配列の平均を計算する必要があります。

これに対する私の考えは次のとおりでした。

clear-host  
$averageArray = @()

Write-Host "How many numbers do you want to put in?" -for yellow
Write-Warning "Maximum is 10!"
Write-Host "Press the Enter key to continue."

$amountValues = Read-host
while($amountVAlues -notmatch "^([1-9]|[1][0])$") {
   $amountValues = Read-Host "Please enter a number between 1 and 10"

if($amountVAlues -notmatch "^([1-9]|[1][0])$") {Write-host "Error! Please enter a number between 1 and 10!"}
} 

$value1 = read-host "Enter number one"

while($value1 -notmatch '^\d+$') {
   $value1 = Read-Host 
if($value1 -notmatch '^\d+$') {Write-host "Error! Please enter a positive number!"}
} 

$value2 = read-host "Enter number two"

while($value2 -notmatch '^\d+$') {
   $value2 = Read-Host 
if($value2 -notmatch '^\d+$') {Write-host "Error! Please enter a positive number!"}
} 


$averageArray = $averageArray + $value1

write-host "$averageArray"


read-host

配列を作成し、ユーザーが配列に必要な合計 $values の量として 1 ~ 10 の数値を入力するようにしました。その後、$value の入力をループして、配列に入力したいと考えました。$mountValues 変数と同じ回数ループしたかったのです。

これを行う際の問題は、ループすると $variable1 が「x」回上書きされることです。

ループを介して配列に値を入力する方法はありますか?

4

1 に答える 1

5

私は次のようにします:

while ( (1..10) -notcontains $g)
{
    $g = read-host "How many numbers do you want to put in? (value from 1 to 10) " 
}    
$ar=@()
for ($i=0; $i -lt $g; $i++)
{
   $ar += read-host "Enter value $($i+1)"
}    
$averageArray = ($ar | Measure-Object -Average).average    
write-host "Average is : $averageArray"
于 2012-12-07T13:43:52.073 に答える