2009-05-20 12 views
5

Es bastante sencillo obtener las primeras x líneas de un archivo de texto, pero necesito los primeros x MB de un archivo. Dado que soy un neófito de PowerShell, si pudiera, por favor, dame algunas anotaciones sobre el guión que serían muy apreciadas.powershell para obtener los primeros x MB de un archivo

+0

[Este] (http://stackoverflow.com/a/18936628/2707864) funcionó para mí. Y no atraviesa todo el archivo como 'get-content', por lo que es más conveniente para archivos grandes. –

Respuesta

13
Get-Content foo.exe -TotalCount 1MB -Encoding byte 

Si sucede utilizar PowerShell Community Extensions continuación, hacer esto:

Format-Hex foo.exe -count 1MB 

Nota: Si está utilizando PowerShell V2 asegúrese de agarrar el 1.2 beta de PSCX.

+0

que es un hechizo mágico útil. – Cheeso

1

Independientemente de PowerShell, solo usaría el comando head. (Es un comando estándar de Unix, pero it's available for Windows.) La opción -c le permite especificar el número de bytes que desea.

 
head -c 1024 foo.exe 
+11

Una de las razones por las que no me gusta hacer preguntas de PowerShell es por las respuestas obvias "podrías hacerlo unirme con ...". tiene que haber una docena de formas que no sean de PowerSell de obtener lo que estoy buscando, pero estoy buscando una respuesta Powershell. –

+0

Y no entiendo por qué alguien restringiría las soluciones a PowerShell cuando hay soluciones que funcionan en todas partes, no solo en PowerShell. Es decir, a menos que sea solo una curiosidad inactiva: "Caramba, me pregunto si puedo hacer eso en PowerShell". No dijiste que tenía que ser una solución solo de PowerShell. Pensé que solo eres sentado en un aviso de PS y preguntándose cómo obtener los primeros N bytes de un archivo. La respuesta es la misma que si estuviera sentado en cualquier otro aviso, y tampoco es una solución de Unix. –

+3

Tal vez algún día no quiera para leer el primer 1 KiB de un archivo, pero a partir de una clave de registro binario. Además, hay muchas veces que se pierde algo en una nueva tecnología porque está demasiado acostumbrado a hacerlo a la antigua. No recomendaría usar sed/awk on wmic output a un usuario de Powershell, ¿lo harías? También, head (siendo n ot a cmdlet) producirá una cadena [] que puede no ser lo que desea. – Joey

Cuestiones relacionadas