Вывод Powershell CSV - нельзя удалять строки и специальные символы - PullRequest
0 голосов
/ 21 октября 2018

У меня проблемы с файлом csv.Мой скрипт собирает данные из таблицы SQL, затем он должен записать результат в виде файла csv.Моя проблема в том, что файл csv, который создает мой код, имеет речевые метки и две строки заголовка, которые мне не нужны.

Сейчас мой файл выглядит так:

TYPE System.Data.DataRow

код, «заказ», «цена»

product1, «1», «207,75»

product2, «1», "95,24"

Мне бы хотелось, чтобы это выглядело так:

product1; 1; 207,7

product2; 1;95,24

Мой код:

$VAR1 = "select [product], [order], [price] from TABLE1
$VAR2 = Invoke-Sqlcmd -Query $VAR1 -serverinstance SERVER1
$Result | Export-Csv -path C:\test55.csv

1 Ответ

0 голосов
/ 21 октября 2018

Вы можете удалить строку заголовка TYPE, используя переключатель -NoTypeInformation на Export-CSV.

Не думаю, что вы можете отключить речевые метки, но они полезны в первом случае.из ваших значений данных включает в себя запятую.Если вы откроете CSV-файл в Excel, речевые метки не будут видны, поэтому они учитываются вещами, которые читают CSV.Если вы хотите удалить их, вы можете сделать -replace, но это может привести к удалению их там, где они являются частью данных.

Если вы хотите удалить строку заголовка, вы можете использовать ConvertTo-CSV и затем используйте Select-Object, чтобы пропустить первую строку вывода.

Так, например:

$VAR1 = "select [product], [order], [price] from TABLE1"
$VAR2 = Invoke-Sqlcmd -Query $VAR1 -serverinstance SERVER1

($Result | ConvertTo-Csv -NoTypeInformation |
    Select-Object -Skip 1) -Replace '"' |
    Out-File C:\test55.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...