powershell 和命令行生成的 txt 文件之间的大小差异

powershell 和命令行生成的 txt 文件之间的大小差异

我遇到了一个无法解释和理解的情况。我通过在命令行中运行以下命令创建了一个文本文件:certutil -v -template > documents\templates.txt

因为我需要在六台服务器上执行此操作,并通过名称区分文件,所以我决定使用 powershell 并使用 $env:COMPUTERNAME 变量,这样我就不必在每台服务器上修改命令。所以我打开 PS ISE 并输入:certutil -v -template | Out-File $env:USERPROFILE\Documents\$env:COMPUTERNAME-templates.txt

我注意到 powershell 生成的文件正好是它的两倍大。当我尝试在命令行中运行 fc 命令来比较文件时,结果是文件差异太大。当我将这些文件的内容放入 Excel(一个文件放在 A 列,第二个文件放在 K 列)并仅用眼睛向下滚动来扫描差异时,我没有注意到任何差异,并且两个文件的行数相同。当我在笔记本电脑上创建一个空文本文件并将 powershell 文件的内容复制到其中时,保存后它的大小与命令行文件相同。

我的意思是,大小差异是 200 kB,所以不是问题,但 powershell 创建的文件大小是命令行的两倍。这是什么原因?为什么 Powershell 生成的 txt 文件比命令行生成的文件大两倍?如果文件较大,这可能是一个问题。

答案1

我相信 powershell 会生成基于 UTF-16 的文件而不是基于 UTF-8 的文件。

因此在 powershell 中每个字符实际上是 2 个字节。

我做了一个另存为在记事本中,保存为UTF-8,文件大小为1/2。

相关内容