Вот мой сценарий powershell; Я думаю, что намерение довольно очевидно:
import-csv .\CdmCodeList.csv | select-object -first 3 {
$id = $_.ItemDescription.Replace("'", "''");
$mn = $_.ManufacturerName.Replace("'", "''");
$mc = $_.ManufacturerCode.Replace("'", "''");
"insert into @codes values ('$($_.ItemCode)', '$id', '$mn', '$mc')";
}
Это делает то, что я ожидаю, выводя на хост:
insert into @codes values ('37025012', 'SAW BLADE PROFIX', '', '')
insert into @codes values ('37067808', 'ROD SUPER FLEX DANEK', '', '')
insert into @codes values ('52600200', 'GENERATOR PRECISION SCS ADVANCED BIONICS', '', '')
Теперь, если я хочу записать это в файл, добавив его в последнюю строку:
| set-content -path "my.sql"
Полученное содержимое my.sql не то, что я хочу, и очень удивительно для меня:
@{
$id = $_.ItemDescription.Replace("'", "''");
$mn = $_.ManufacturerName.Replace("'", "''");
$mc = $_.ManufacturerCode.Replace("'", "''");
"insert into @codes values ('$($_.ItemCode)', '$id', '$mn', '$mc')";
=insert into @codes values ('37025012', 'SAW BLADE PROFIX', '', '')}
@{
$id = $_.ItemDescription.Replace("'", "''");
$mn = $_.ManufacturerName.Replace("'", "''");
$mc = $_.ManufacturerCode.Replace("'", "''");
"insert into @codes values ('$($_.ItemCode)', '$id', '$mn', '$mc')";
=insert into @codes values ('37067808', 'ROD SUPER FLEX DANEK', '', '')}
...etc...
Два вопроса: 1. Что делает PowerShell? и 2. Как я могу сделать вывод файла похожим на вывод хоста?