gpt4 book ai didi

sql-server - 如何从 PowerShell 中的对象中删除 NULL 字符 (0x00)

转载 作者:行者123 更新时间:2023-12-02 17:00:52 25 4
gpt4 key购买 nike

我有一个 .CSV 文件,该文件是使用 SQL Server 的 BCP 命令行 BULK-COPY 实用程序创建的,用于转储一堆数据库表。

由于我想使用 Powershell 导入这些 .CSV 文件并使用 format-table cmdlet 将它们转换为漂亮的报告,因此我遇到了列排列等问题。因为某些列包含来自 SQL Server 的 NULL。我没有选择首先从 SQL Server 转换 NULL;由于我将表导出为 CSV 的方式。

因此,我想先从 .CSV 文件中删除所有 NULL,然后再尝试将其通过管道传输到格式表 cmdlet。

我的基本代码如下:

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

有谁知道如何从我的 CSV 中删除 NULL,以便我可以显示一个漂亮的表格报告。我想将这些 .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。

最佳答案

经过一番尝试后,我终于发现这个语法是有效的:

(Get-Content "C:\temp\tablename.csv") -replace "`0", "" | Set-Content "C:\temp\tablename.csv"

关于sql-server - 如何从 PowerShell 中的对象中删除 NULL 字符 (0x00),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9863455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com