¿Es posible que PowerShell determine qué tipo de archivo es determinado? Por ejemplo, si le paso una ruta de C:\Foo.zip
, ¿puedo hacer que determine que el archivo en esa ruta es, de hecho, un archivo zip y no algo más?PowerShell: ¿es posible determinar el tipo MIME de un archivo?
Respuesta
PowerShell, como el resto del sistema operativo Windows, simplemente adivina el tipo de archivo basado en la extensión.
Sin embargo, existen programas de adivinadores de tipo de archivo de terceros, que realmente miran el contenido del archivo.
Hay un truly excellent answer to this question over on SuperUser. Las mejores recomendaciones incluyen File for Windows y TrID.
Puede obtener los tipos de mimo del registro. Desafortunadamente, la colmena HKEY_CURRENT_USER no está asignada automáticamente como unidad de disco, por lo que tendrá que verificarla primero.
function Get-MimeType()
{
param($extension = $null);
$mimeType = $null;
if ($null -ne $extension)
{
$drive = Get-PSDrive HKCR -ErrorAction SilentlyContinue;
if ($null -eq $drive)
{
$drive = New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
}
$mimeType = (Get-ItemProperty HKCR:$extension)."Content Type";
}
$mimeType;
}
He aquí un ejemplo de uso
PS> Get-MimeType -extension .zip
application/x-zip-compressed
-Joe
Esto en realidad no prueba el contenido del archivo de destino, simplemente lee la extensión y busca la relación de tipo de archivo del sistema operativo. –
Si tiene .NET 4.5+, puede utilizar el método estático System.Web.MimeMapping.GetMimeMapping
:
> Add-Type -AssemblyName "System.Web"
> [System.Web.MimeMapping]::GetMimeMapping("C:\foo.zip")
application/x-zip-compressed
crédito va a this answer a una pregunta similar sobre .NET.
Editar: Lo leí mal. GetMimeMapping
devuelve el tipo MIME por extensión, no analiza el contenido.
$ext = ".exe"
$null = New-PSDrive HKCR Registry HKEY_CLASSES_ROOT -ea 0
$mime = (gp HKCR:$ext)."Content Type"
write-host $ext $mime
Por favor, amplíe su respuesta (díganos _qué_ es el problema, y _cómo_ este código corrige ese problema). Las respuestas de solo código son menos educativas y de uso limitado. –
Debe dar más contexto/explicación para el código, especialmente porque ya hay varias respuestas de alta calidad. Por favor, lea el sitio [recorrido], así como [respuesta]. – EJoshuaS
- 1. Finfo_file el archivo cargado para determinar tipo MIME
- 2. ¿Cuál es el tipo mime de un archivo wsdl?
- 3. ¿La mejor manera de determinar el tipo de mime de un archivo en java?
- 4. ¿Cómo saber cuál es el tipo MIME según el archivo?
- 5. Lanzando un intento para el tipo de archivo y MIME?
- 6. ¿Cómo obtener el tipo MIME de un archivo en Qt?
- 7. ¿Es posible determinar si un tipo es un tipo de enumeración con ámbito?
- 8. ¿Cuál es el tipo de mime correcto para servir un archivo .ipa de iPhone?
- 9. es la detección de tipo MIME la mejor manera de detectar un tipo de archivo?
- 10. tipo MIME para el archivo zip en Google Chrome
- 11. Encontrar un tipo MIME para un archivo en Windows
- 12. PHP obtener archivo remoto mime-tipo
- 13. Obtener el tipo MIME del nombre de archivo en C
- 14. Determinar si un tipo es un tipo anónimo
- 15. ¿Cómo agregar un tipo de mime personalizado?
- 16. ¿Hay un tipo MIME "predeterminado"?
- 17. ¿Cómo determinar si un tipo es un tipo de colección?
- 18. archivo Rendering con el tipo MIME en los carriles
- 19. tipo de mime YAML?
- 20. ¿Cómo agrego un tipo MIME a .htaccess?
- 21. Agregar un tipo MIME en python
- 22. Determinar si un archivo es un duplicado
- 23. ¿Cómo usar el tipo CSV MIME?
- 24. el tipo MIME correcto para JSON?
- 25. correcta para el tipo mime .mp4
- 26. Obtención de tipo MIME en PHP sin EXTENSIÓN DE ARCHIVO
- 27. Tipo MIME para msgpack?
- 28. ¿Cómo comprobar si un archivo cargado es una imagen sin tipo de mime?
- 29. Detectando tipo MIME en PHP
- 30. ¿Cómo puedo obtener el tipo MIME de un InputStream de un archivo que se está cargando?
Eso funciona. ¡Gracias! – Nick