Имам .CSV файл, който създадох с помощта на помощната програма BCP BULK-COPY от командния ред на SQL Server за изхвърляне на куп таблици от база данни.
Тъй като искам да импортирам тези .CSV файлове с помощта на Powershell и да ги конвертирам в хубав отчет с помощта на cmdlet format-table, имам проблеми с подреждането на колони и т.н. защото някои колони съдържат NULL от SQL Server. Нямам опция първо да конвертирам NULL от SQL Server; поради начина, по който експортирам таблицата в CSV.
Ето защо бих искал да премахна всички NULL от .CSV файла, преди да се опитам да го прехвърля в кратката команда за форматна таблица.
Основният ми код е по-долу:
$CSV=import-csv "c:\temp\tablename.csv"
$CSV | format-table -autosize | out-string -width 4096 >"C:\TEMP\tablename.txt"
Опитах се да направя нещо като:
$CSV | -replace($null,"") | format-table -autosize | out-string -width 4096 > "C:\TEMP\tablename.txt"
но все още получавам NULL.
Някой знае ли как да премахна NULL от моя CSV, за да мога да покажа хубав табличен отчет. Искам тези .TXT отчети да бъдат импортирани в SVN, но NULL ще ми създават проблеми, освен това изкривява отчетите.
CSV файл, както е показано в шестнадесетичен редактор:
00000EA0h: 31 38 39 2C 31 31 39 2C 37 35 29 2C 77 68 69 74 189,119,75),whit
00000EB0h: 65 2C 77 68 69 74 65 2C 2C 2C 2C 2C 2C 2C 2C 2C e,white,,,,,,,,,
00000EC0h: 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C ,,,,,,,,,,,,,,,,
00000ED0h: 2C 2C 0D 0A 61 63 62 34 33 5F 30 31 2C 4F 4E 2C ,,..acb43_01,ON,
00000EE0h: 00 2C 32 37 2C 39 39 2C 2F 61 63 62 34 33 5F 30 .,27,99,/acb43_0
00000EF0h: 31 2F 34 33 62 61 6C 61 6E 63 65 73 2E 67 69 66 1/43balances.gif
Забележете, че при EE0h първият знак е NULL, 0x00.
sql-server
беше много подвеждаща, така че промених леко заглавието, за да премахна неяснотата. Не съм сигурен дали сега не звучи тромаво или неудобно, така че не се колебайте да го редактирате отново, както сметнете за добре. - person Andriy M   schedule 26.03.2012