Größenunterschied zwischen Powershell- und Befehlszeilen-generierten TXT-Dateien

Größenunterschied zwischen Powershell- und Befehlszeilen-generierten TXT-Dateien

Ich bin auf eine Situation gestoßen, die ich weder erklären noch verstehen kann. Ich habe eine Textdatei erstellt, indem ich den folgenden Befehl in der Befehlszeile ausgeführt habe:certutil -v -template > documents\templates.txt

Da ich dies auf sechs Servern tun und die Dateien nach Namen unterscheiden musste, entschied ich mich, Powershell zu verwenden und stattdessen die Variable $env:COMPUTERNAME zu verwenden, damit ich den Befehl nicht auf jedem Server ändern muss. Also öffnete ich PS ISE und gab Folgendes ein:certutil -v -template | Out-File $env:USERPROFILE\Documents\$env:COMPUTERNAME-templates.txt

Mir fiel auf, dass die von Powershell generierte Datei genau doppelt so groß war. Als ich versuchte, den Befehl fc in der Befehlszeile auszuführen, um die Dateien zu vergleichen, stellte sich heraus, dass die Dateien zu unterschiedlich waren. Als ich den Inhalt dieser Dateien in Excel einfügte (eine Datei in Spalte A, die zweite in Spalte K) und beim Herunterscrollen nur mit den Augen nach Unterschieden suchte, bemerkte ich keine Unterschiede und beide Dateien hatten die gleiche Anzahl von Zeilen. Als ich auf meinem Laptop eine leere Textdatei erstellte und den Inhalt der Powershell-Datei darin kopierte, hatte sie nach dem Speichern die gleiche Größe wie die Befehlszeilendatei.

Ich meine, der Größenunterschied beträgt 200 kB, also kein Problem, aber Powershell hat eine Datei erstellt, die doppelt so groß ist wie die Befehlszeile. Was ist der Grund dafür? Warum ist die von Powershell generierte txt-Datei doppelt so groß wie die von der Befehlszeile generierte? Bei größeren Dateien könnte das ein Problem sein.

Antwort1

Ich glaube, Powershell erstellt eine UTF-16-basierte Datei statt einer UTF-8-Datei.

Daher ist in Powershell jedes Zeichen tatsächlich 2 Bytes lang.

Ich habe einspeichern alsim Editor, und speichern Sie es als UTF-8. Die Dateigröße beträgt 1/2.

verwandte Informationen