通过批量输入来更改字符NUL

时间:2019-01-14 16:03:01

标签: powershell batch-file

我正在处理蝙蝠文件。我有一个像这样的.txt文件-

1:  04000025000          00000008,37 NULNULNULNUL
2:  04000455000          0465346000008,37 NULNULNULNUL

我要删除所有拥有的NUL-

1:  04000025000          00000008,37 
2:  04000455000          0465346000008,37 

请你帮我吗?

  

NUL的字符是\x00

我需要一个蝙蝠代码,该代码在txt文件中查找字符x00并将其替换为该字符以转到下一行。

赞:

powershell -Command "(MMAI_CONTRAT_20180519.txt) -replace %\x00% , '\n' | Out-File test.txt"

1 个答案:

答案 0 :(得分:0)

您的命令中缺少Get-Content

提供的文本文件以前是这样的

> (Get-Content MMAI_CONTRAT_20180519.txt)|Format-Hex


           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   31 3A 20 20 30 34 30 30 30 30 32 35 30 30 30 20  1:  04000025000
00000010   20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 30           0000000
00000020   38 2C 33 37 20 00 00 00 00 32 3A 20 20 30 34 30  8,37 ....2:  040
00000030   30 30 34 35 35 30 30 30 20 20 20 20 20 20 20 20  00455000
00000040   20 20 30 34 36 35 33 34 36 30 30 30 30 30 38 2C    0465346000008,
00000050   33 37 20 00 00 00 00                             37 ....

这应该可以完成工作:

> (Get-Content MMAI_CONTRAT_20180519.txt) -replace '\x00+', "`r`n"|Format-Hex


           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   31 3A 20 20 30 34 30 30 30 30 32 35 30 30 30 20  1:  04000025000
00000010   20 20 20 20 20 20 20 20 20 30 30 30 30 30 30 30           0000000
00000020   38 2C 33 37 20 0D 0A 32 3A 20 20 30 34 30 30 30  8,37 ..2:  04000
00000030   34 35 35 30 30 30 20 20 20 20 20 20 20 20 20 20  455000
00000040   30 34 36 35 33 34 36 30 30 30 30 30 38 2C 33 37  0465346000008,37
00000050   20 0D 0A                                          ..

该命令转义并分批包装:

 powershell -nop -c "(Get-Content MMAI_CONTRAT_20180519.txt) -replace '\x00+', \"`r`n\"| Out-File test.txt"