Batch file 用批处理文件替换csv中的非打印字符

Batch file 用批处理文件替换csv中的非打印字符,batch-file,Batch File,我有一个将csv文件导入SQL数据库的批处理文件,但源数据通常包含非打印字符(Excel代码(10)),这会在导入过程中导致问题 如何将字符(10)作为批处理文件的一部分删除?您可以从批处理文件中调用powershell.exe,如下所示: powershell -c "(Get-Content -Raw in.csv) -replace '(?<!\r)\n', ' ' | Set-Content out.csv" powershell-c“(获取内容-Raw in

我有一个将csv文件导入SQL数据库的批处理文件,但源数据通常包含非打印字符(Excel代码(10)),这会在导入过程中导致问题


如何将字符(10)作为批处理文件的一部分删除?

您可以从批处理文件中调用
powershell.exe
,如下所示:

powershell -c "(Get-Content -Raw in.csv) -replace '(?<!\r)\n', ' ' | Set-Content out.csv"
powershell-c“(获取内容-Raw in.csv)-replace'(?)?
  • 将输出保存到
    out.csv
    (如果保存过程中断,您可以将其保存回同一个文件,尽管存在数据丢失的假设风险)

  • 您可能必须使用and的
    -编码
    参数来控制输入和输出编码。

    请您解释一下代码(10)和字符(10)的含义。例如,SQL错误代码10通常是“服务未运行”,但字符可能表示八进制字符010(退格),十进制字符10(换行符),或十六进制字符0x10(数据链接转义)。在Excel中,字符(10)或代码(10)是一个新行字符。我导入的csv中有包含新行的单元格,我需要删除这些单元格。因为我有一个批处理文件,我正在使用该文件将数据导入MSSQL,我正在寻找一种方法来删除这些新行字符,作为批处理文件中的第一步之一。如果我理解正确,您是说您在中有一些记录吗您的CSV,其中包括多行字段。另外,从我之前的评论中,您似乎试图删除十进制字符
    10
    ,这是换行符。