Powershell:有条件地改变pipe道中的对象

我正在将CSV转换为SQL插入,并且存在无效的文本列,如果它不是NULL,则需要引用它。 我会为转换写下如下内容:

Import-Csv data.csv | foreach { "INSERT INTO TABLE_NAME (COL1,COL2) VALUES ($($_.COL1),$($_.COL2));" >> inserts.sql } 

但是我不知道如何在pipe道中添加一个额外的层来查看COL2是否不等于'NULL'并在这种情况下引用它。 我如何实现这样的行为?

foreach-object cmdlet的代码块中,可以有多个语句,如下所示:

 Import-Csv data.csv | foreach { if ($_.COL1 -ne $null) { $c1 = "'$($_.COL1)'" } else { $c1 = $_.COL1 } "INSERT INTO TABLE_NAME (COL1,COL2) VALUES ($c1,$($_.COL2));" >> inserts.sql }