使用PowerShell将随机数相加为定义的数

使用PowerShell将随机数相加为定义的数,powershell,powershell-3.0,Powershell,Powershell 3.0,大家好,PowerShell专家 我正在编写一个简单的代码,它生成一个产品和任务列表(一个产品有几个任务),并“随机”花费时间。我希望totalTime将时间加起来为40(整数)(并且可以根据用户定义进行更改,例如50、60等) 代码运行良好,但加起来不到40。你能帮忙吗 奖励:我可以为产品或任务分配权重,以便在随机选择时获得优先权吗?e、 我想有更多的时间花在P3和P7以及T3、T12和T15上。时间加起来应该是40分钟 cls [int]$totalTime = 40 # This will

大家好,PowerShell专家

我正在编写一个简单的代码,它生成一个产品和任务列表(一个产品有几个任务),并“随机”花费时间。我希望totalTime将时间加起来为40(整数)(并且可以根据用户定义进行更改,例如50、60等)

代码运行良好,但加起来不到40。你能帮忙吗

奖励:我可以为产品或任务分配权重,以便在随机选择时获得优先权吗?e、 我想有更多的时间花在P3和P7以及T3、T12和T15上。时间加起来应该是40分钟

cls
[int]$totalTime = 40 # This will be the number that the TotalTime Adds up

$taskCategories = @("T1"
"T2",
"T3",
"T4",
"T5",
"T6",
"T7",
"T8",
"T9",
"T10",
"T11",
"T12",
"T13",
"T14",
"T15")

$products = @("P1"
, "P2"
, "P3"
, "p4"
, "P5"
, "P6"
, "P7"
, "P8"
, "P9"
, "P10")

for ($i = 0; $i -le 1; ++$i)
{
    $totalTime = 0
    while ($totalTime -lt 40)
    {
        [int]$task = Get-Random -Minimum 0 -Maximum 16
        [int]$product = Get-Random -Minimum 0 -Maximum 11
        $time = Get-Random -Minimum 4 -Maximum 10

        Write-Output "$($products[$product])`t$($taskCategories[$task])`t$time"
        $totalTime = $totalTime + $time
    }
}
下面是我得到的输出:


$totalTime
移出可工作的FOR循环

#######
$totalTime = 0
#######

for ($i = 0; $i -le 1; ++$i)
{
    while ($totalTime -lt 40)
    {
        [int]$task = Get-Random -Minimum 0 -Maximum 16
        [int]$product = Get-Random -Minimum 0 -Maximum 11
        $time = Get-Random -Minimum 4 -Maximum 10

        Write-Output "$($products[$product])`t$($taskCategories[$task])`t$time"
        $totalTime = $totalTime + $time
    }
}

$totalTime
移出可工作的FOR循环

#######
$totalTime = 0
#######

for ($i = 0; $i -le 1; ++$i)
{
    while ($totalTime -lt 40)
    {
        [int]$task = Get-Random -Minimum 0 -Maximum 16
        [int]$product = Get-Random -Minimum 0 -Maximum 11
        $time = Get-Random -Minimum 4 -Maximum 10

        Write-Output "$($products[$product])`t$($taskCategories[$task])`t$time"
        $totalTime = $totalTime + $time
    }
}

我真傻。。我应该考虑一下。但即使我按照你的建议使用
$totalTime
,时间也有点超过40。谢谢你的帮助。我真傻。。我应该考虑一下。但即使我按照你的建议使用
$totalTime
,时间也有点超过40。谢谢你的帮助。