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



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

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

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

powershell -c "(Get-Content -Raw in.csv) -replace '(?<!r)n', ' ' | Set-Content out.csv"

以上:

  • 完全读取文件in.csv
  • 用空格字符替换所有独立的LF(LINE FEED,U+000A(字符(即不属于CRLF Windows样式换行符的字符(
  • 将输出保存到out.csv(您可以保存回同一个文件,尽管如果保存回的过程中断,则存在数据丢失的假设风险(

您可能必须使用Get-ContentSet-Content-Encoding参数来控制输入和输出编码。

最新更新