Powershell: Condicionalmente mudando objetos no pipeline

1

Estou convertendo um CSV para inserções SQL e há uma coluna de texto nula que preciso citar caso não seja NULL. Eu escreveria algo como o seguinte para a conversão:

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

Mas não consigo descobrir como adicionar uma camada adicional ao pipeline para ver se o COL2 não é igual a 'NULL' e citá-lo nesses casos. Como eu alcanço esse comportamento?

    
por axk 16.04.2010 / 11:26

1 resposta

1

No bloco de código do cmdlet foreach-object , você pode ter várias instruções, algo como:

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
}
    
por 16.04.2010 / 12:05

Tags