Export-Clixml 创建 less 无法读取的二进制文件

Export-Clixml creating binary file which cannot be read by less

我正在编写一个 powershell 脚本,我在其中使用

Get-EventLog -logname System | Export-Clixml "syslogs.xml"

以 xml 格式获取系统日志。创建 xml 后,我必须将其移动到 Linux 主机。 我尝试将此 xml 文件复制到 linux 主机,然后当我执行 less syslogs.xml 时,我收到一条消息,表明这可能是一个二进制文件,并且 less 显示不可读字符。

但是,当我执行 vi syslogs.xml 时,我可以查看 xml。 谁能告诉我为什么 lesssyslogs.xml 检测为二进制文件,我该如何修复它?

谢谢

Export-Clixml 默认为 UTF-16,less 不理解。我很惊讶 vi 可以(但我可以确认它确实如此)。尝试 Export-Clixml -Encoding UTF8。这仍然使用 BOM 导出,less 显示为两个二进制字符。如果这让您感到困扰,-Encoding Default 将使用平台默认编码,这可能是任何东西。或者您可以在 Linux 端使用 recoderecode utf16.. syslogs.xml 会将文件从 UTF-16 转换为系统的任何默认字符集。同样,这可能是任何东西;为避免丢失,您可能希望至少坚持使用大多数工具都可以处理的 UTF-8。 recode utf16..utf8 将重新编码为没有 BOM 的 UTF-8,这可能是 Linux 上最兼容的格式。