Как удалить символ NULL (0x00) из объекта в PowerShell

У меня есть файл .CSV, который я создал с помощью утилиты командной строки BCP SQL Server BULK-COPY для создания дампа набора таблиц базы данных.

Поскольку я хочу импортировать эти файлы .CSV с помощью Powershell и преобразовать их в удобный отчет с помощью командлета format-table, у меня возникают проблемы с выравниванием столбцов и т. д. потому что некоторые столбцы содержат NULL из SQL Server. У меня нет возможности сначала преобразовать NULL из SQL Server; из-за того, как я экспортирую таблицу в CSV.

Поэтому я хотел бы удалить все значения NULL из файла .CSV перед попыткой передать его командлету format-table.

Мой базовый код приведен ниже:

$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.

6
задан Andriy M 26 March 2012 в 05:43
поделиться