(Ruby), Как Вы проверяете, содержит ли диапазон подмножество другого диапазона?

Ваш сценарий по-прежнему выполняется из-за того, что командлет Get-WMIObject не завершается, обратитесь к этой статье, чтобы понять Непрерывные ошибки в PowerShell

Если вы хотите остановить сценарий, когда Get-WMIObject ] генерирует ошибку, просто добавьте –ErrorAction Stop

$NICs = Get-WMIObject Win32_NetworkAdapterConfiguration -computername $computer –ErrorAction Stop | where {

Ваш сценарий по-прежнему выполняется из-за того, что командлет Get-WMIObject не завершается, обратитесь к этой статье, чтобы понять Непрерывные ошибки в PowerShell

Если вы хотите остановить сценарий, когда Get-WMIObject ] генерирует ошибку, просто добавьте –ErrorAction Stop

[110]

Если вы хотите получить дополнительную информацию об ошибке «RPC-сервер недоступен», вы можете проверить, что «Инструментарий управления Windows (WMI-In») ) »правило включено в брандмауэре для каждой удаленной машины, как описано в этого ответа .

.IPEnabled -eq “TRUE”}

Если вы хотите получить дополнительную информацию об ошибке «RPC-сервер недоступен», вы можете проверить, что «Инструментарий управления Windows (WMI-In») ) »правило включено в брандмауэре для каждой удаленной машины, как описано в этого ответа .

16
задан 31 March 2009 в 16:32
поделиться

5 ответов

Будьте осторожны, используя это с большими диапазонами, но это элегантный способ сделать это:

(x.to_a & y.to_a).empty?
8
ответ дан 30 November 2019 в 15:07
поделиться

Эффективный путь состоит в том, чтобы сравнить пределы

(x.first <= y.last) and (y.first <= x.last)
61
ответ дан 30 November 2019 в 15:07
поделиться

Если диапазон включает или начало или конец второго диапазона, то они накладываются.

(x === y.first) or (x === y.last)

совпадает с этим:

x.include?(y.first) or x.include?(y.last)
1
ответ дан 30 November 2019 в 15:07
поделиться

Но если я хочу, чтобы это было "верно", когда существует частичное перекрытие между двумя диапазонами, как я записал бы это?

Можно преобразовать диапазоны в массив и использовать & оператор (соединение). Это возвращает новый массив со всеми элементами, происходящими в обоих массивах. Если полученный массив не пуст, который означает, что существуют некоторые перекрывающиеся элементы:

def overlap?(range_1, range_2)
  !(range_1.to_a & range_2.to_a).empty?
end
1
ответ дан 30 November 2019 в 15:07
поделиться

Если вы проверяете перекрытие, я бы просто сделал

(x.include? y.first) or (x.include? y.last)

, поскольку один диапазон должен включать по крайней мере один из концов другого. Для меня это более интуитивно понятно, чем принятый ответ на объединение, хотя и не так эффективно, как сравнение пределов MarkusQ.

1
ответ дан 30 November 2019 в 15:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: