Powershell DataTable,Select 过滤器不接受单引号字符

Powershell DataTable,Select Filter does not accept single quote character

我正在使用 Powershell 针对数据表编写简单的名称搜索。代码如下:

    $filter = "Name = '$aContact'"
    $arow = $dt_resources.Select($filter)

除非 $aContact 包含单引号 (') 字符,如“O'Connor”,否则一切正常。

我该如何解决这个问题?

提前致谢。

已经对问题的解决方案发表了评论,但将其作为答案,您可以通过将它们加倍来逃避 '。我添加了一个简单的函数,它也将作为可能的 $null 输入的解决方法,因为在这种情况下两种方法(.Contains.Replace)都会抛出异常。

$dtt = [System.Data.DataTable]::new()
'Name', 'Value' | ForEach-Object{
    $dtt.Columns.Add([System.Data.DataColumn]::new($_))
}
$row = $dtt.NewRow()
$row.Name = "O'Connor"
$row.Value = [random]::new().Next()
$dtt.Rows.Add($row)
$row = $dtt.NewRow()
$row.Name = "Doe"
$row.Value = [random]::new().Next()
$dtt.Rows.Add($row)

function CheckQuery {
param(
    [parameter(ValueFromPipeline)]
    [string]$Value
)
    if($Value.Contains("'")) { return $Value.Replace("'","''") }
    return $Value
}

"O'Connor", "Doe", $null | ForEach-Object {
    $filter = "Name = '{0}'" -f ($_ | CheckQuery)
    $dtt.Select($filter)
}