Diferencia de tamaño entre archivos de texto generados por PowerShell y por línea de comandos

Diferencia de tamaño entre archivos de texto generados por PowerShell y por línea de comandos

Me encontré con una situación que no puedo explicar ni comprender. Creé un archivo de texto ejecutando el siguiente comando en la línea de comando:certutil -v -template > documents\templates.txt

Como necesitaba hacerlo en seis servidores y diferenciar los archivos por nombre, decidí usar powershell y usar la variable $env:COMPUTERNAME para no tener que modificar el comando en cada servidor. Entonces abrí PS ISE y escribí:certutil -v -template | Out-File $env:USERPROFILE\Documents\$env:COMPUTERNAME-templates.txt

Noté que el archivo generado por PowerShell tenía exactamente el doble de tamaño. Cuando intenté ejecutar el comando fc en la línea de comando para comparar los archivos, el resultado fue que los archivos son demasiado diferentes. Cuando puse el contenido de estos archivos en Excel (un archivo en la columna A, el segundo en la columna K) y busqué diferencias simplemente usando mis ojos mientras me desplazaba hacia abajo, no noté ninguna diferencia y ambos archivos tienen el mismo número de filas. . Cuando creé un archivo de texto vacío en mi computadora portátil y copié el contenido del archivo de PowerShell en él, después de guardarlo tiene el mismo tamaño que el archivo de línea de comando.

Quiero decir, la diferencia de tamaño es de 200 kB, por lo que no es un problema, pero PowerShell creó un archivo del doble del tamaño de la línea de comando. ¿Cuál es la razón de eso? ¿Por qué el archivo txt generado por Powershell es dos veces más grande que el generado por la línea de comando? En el caso de archivos más grandes, podría ser un problema.

Respuesta1

Creo que PowerShell crea un archivo basado en UTF-16 en lugar de un archivo UTF-8.

Por lo tanto, en PowerShell cada carácter tiene en realidad 2 bytes.

hice unguardar comoen el bloc de notas y guárdelo como UTF-8, y el tamaño del archivo es 1/2.

información relacionada