如何通过Windows cmd命令删除TXT文件中的NUL字符
Windows下快速移除大文件NUL字符的可用方案
方案1:系统自带PowerShell(无需额外安装软件)
直接以二进制流处理文件,跳过NUL对应的0值字节,处理数百万行甚至GB级文件的速度远高于Notepad++的文本替换,命令如下:
# 基础版,适合中小型大文件 Get-Content -Path "C:\path\to\your\source_file.txt" -Encoding Byte | Where-Object { $_ -ne 0 } | Set-Content -Path "C:\path\to\your\output_file.txt" -Encoding Byte
如果是1GB以上的超大文件,可以加-ReadCount参数批量读取块,进一步提升处理效率:
# 优化版,适合超大文件 Get-Content -Path "C:\path\to\your\source_file.txt" -Encoding Byte -ReadCount 1024 | ForEach-Object { $_ | Where-Object { $_ -ne 0 } } | Set-Content -Path "C:\path\to\your\output_file.txt" -Encoding Byte
方案2:tr命令(适合已安装Git for Windows/ WSL环境的用户)
类Unix环境下的tr命令处理字节过滤速度更快,命令如下:
tr < "C:\path\to\your\source_file.txt" -d '\000' > "C:\path\to\your\output_file.txt"
注意事项
- 操作前务必备份原文件,不要直接在命令中填写相同的输入和输出路径,否则会损坏原文件
- 该操作是二进制层面过滤NUL字符,不会改动其他正常字符,原文件的编码格式(UTF-8、GBK等)会完整保留
- 处理完成后验证输出文件内容正常,再按需删除原文件或者用输出文件覆盖原文件
内容的提问来源于stack exchange,提问作者Jack2345
相关产品推荐
相关产品推荐

