创建具有扩展变量的脚本块

问题描述

我知道在herehere之前已经问过这个问题。但是出于一个或另一个原因,它实际上对我们不起作用。

所需结果

2个可与pester参数ParameterFilter一起使用的脚本块,仅扩展了变量$testTable

{
    ($Query -like "*SELECT * FROM tableOne* 
        WHERE TicketNr IS NOT NULL AND TicketCloseDate IS NULL*")
}
{
    ($Query -like "*SELECT * FROM tableWto* 
        WHERE TicketNr IS NOT NULL AND TicketCloseDate IS NULL*")
}

下面的代码不起作用,因为我们需要转义$testQuery中的所有内容。是否没有办法只扩展$testTable而不扩展其他部分?

foreach ($testTable in @('tableOne','tableTwo')) {
    $testQuery = "*SELECT * FROM $testTable* 
    WHERE TicketNr IS NOT NULL AND TicketCloseDate IS NULL*"
    
    [ScriptBlock]::create("`$Query `-like $testQuery")
}

解决方法

我想我明白了:

foreach ($testTable in @('tableOne','tableTwo')) {   
    [ScriptBlock]::create(@"
    (`$Query -like  "*SELECT * FROM $testTable*
    WHERE TicketNr IS NOT NULL AND TicketCloseDate IS NULL*" )
"@)
}