ваша $dont_process
переменная является строкой, не так ли?Операторы -contains
и -notcontains
используют оператор -eq
для каждого элемента в списке.Оператор -eq
представляет собой сравнение .Net, поэтому класс DataRow должен поддерживать сравнение между DataRow и строкой.Согласно MSDN, это не .
На самом деле, я не совсем уверен, как бы вы сравнили DataRow и строку.Будет ли это имя первого предмета в ряду?
Для целей этого ответа представим, что вы хотите сравнить .ToString()
в DataRow.
Возможно, вам придется прибегнуть к более сложному способу действий:
$list = Invoke-SQLCmd ...
$dontProcess = "dont process"
$shouldProcess = $true
$foreach ($dataRow in $list) {
if ($dataRow.ToString() -eq $dontProcess) {
$shouldProcess=$false;
}
}
if($shouldProcess) {
# processing goes here
}