【问题标题】:generate a random number in powershell from a range but exclude 1在powershell中从一个范围内生成一个随机数,但不包括1
【发布时间】:2017-11-22 10:28:08
【问题描述】:

我想从一个范围(比如说 1 到 3)中生成一个随机数,但从变量 X 中的该范围内排除特定数字

所以我得到了这个代码

get-random -inputobject (1..4) | where {$_ -notin $X}

这确实生成了一个介于 1 和 3 之间的随机数,但是当生成的数字等于 X 中的数字时,它什么也不返回。

当它发生时我如何强制它再次运行,所以我总是得到一个数字,不管它需要多少次尝试?

【问题讨论】:

  • do..while 可以帮助您,而且,-notin 不会做您认为的事情。甚至在逻辑上思考(不是根据 powershell 语法)你正在寻找不等于运算符
  • 你的意思是……而 {$generatednumber -ne $X}?

标签: powershell random


【解决方案1】:

一种选择是在调用 Get-Random 之前删除要排除的项目:

$InputRange = 1..10
$Exclude = 3,4,5

$RandomRange = $InputRange | Where-Object { $Exclude -notcontains $_ }

Get-Random -InputObject $RandomRange

【讨论】:

    猜你喜欢
    • 2022-10-06
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多