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。

相關內容