Answers:
默认情况下,cat(Get-Content)假定文件的内容是文本,特别是UTF-16LE。当对文本处理的假设应用时,像MP3这样的二进制文件会受到损坏。
命令处理器type保留字节,因此您可以保留该部分。要使用PowerShell提取文件,您应该小心使用字节:
[IO.File]::WriteAllBytes('C:\full\path\to\output.mp3', (cat 'F:\MainFile.txt:Message.mp3" -Encoding Byte))
type和Get-Content命令中查看二进制文件的选项。