È possibile che PowerShell determini quale sia il tipo di un determinato file? Ad esempio, se lo passo un percorso di C:\Foo.zip
, posso determinare se il file su quel percorso è, in effetti, un file zip e non qualcos'altro?PowerShell: è possibile determinare il tipo MIME di un file?
risposta
PowerShell, come il resto del sistema operativo Windows, indovina semplicemente il tipo di file basato sull'estensione.
Tuttavia, ci sono programmi per l'interpretazione di file di terze parti, quelli che effettivamente guardano il contenuto del file.
C'è un truly excellent answer to this question over on SuperUser. I migliori consigli includono File for Windows e TrID.
È possibile ottenere i tipi di mime dal registro. Sfortunatamente l'hive HKEY_CURRENT_USER non è auto-mappato come unità, quindi dovrai prima effettuare il check-in.
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;
}
Ecco un esempio di utilizzo
PS> Get-MimeType -extension .zip
application/x-zip-compressed
-Joe
Questo in realtà non verifica il contenuto del file di destinazione, semplicemente legge l'estensione e cerca la relazione del tipo di file dal sistema operativo. –
Se si dispone di .NET 4.5+, è possibile utilizzare il metodo statico System.Web.MimeMapping.GetMimeMapping
:
> Add-Type -AssemblyName "System.Web"
> [System.Web.MimeMapping]::GetMimeMapping("C:\foo.zip")
application/x-zip-compressed
merito va a this answer a una domanda simile su .NET.
Modifica: ha letto male la domanda. GetMimeMapping
restituisce il tipo MIME per estensione, non analizza il contenuto.
$ext = ".exe"
$null = New-PSDrive HKCR Registry HKEY_CLASSES_ROOT -ea 0
$mime = (gp HKCR:$ext)."Content Type"
write-host $ext $mime
Si prega di elaborare la risposta (dicci _che è il problema, e _ come_ questo codice corregge tale problema). Le risposte al solo codice sono meno educative e di uso limitato. –
Si dovrebbe dare più contesto/spiegazione per il codice, soprattutto perché ci sono già diverse risposte di alta qualità. Si prega di leggere il sito [tour] e [risposta]. – EJoshuaS
- 1. Qual è il tipo mime di un file wsdl?
- 2. Il modo migliore per determinare il tipo mime di un file in java?
- 3. È possibile archiviare il tipo mime di un file, come fa SVN, per sfogliare html?
- 4. ASP.NET MVC Determina il tipo mime per file/percorso file
- 5. Qual è il tipo MIME di TypeScript?
- 6. È possibile impostare JavaScript il tipo mime su window.open
- 7. Stima se il file è di tipo MIME
- 8. È possibile configurare i tipi MIME di file Github Pages?
- 9. È possibile rimuovere di nuovo un tipo aggiuntivo in PowerShell?
- 10. Utilizzare il contenuto del file per determinare il tipo MIME con il nodo JS
- 11. Corretto tipo mime per file di patch
- 12. Ricerca di un tipo MIME per un file su Windows
- 13. Come determinare il tipo MIME del file in base al contenuto?
- 14. È possibile aggiungere il tipo MIME a web.config senza interrompere il sito?
- 15. Libreria NET per il rilevamento di tipo file/mime
- 16. Aggiungere il tipo mime al collegamento HTML
- 17. Come ottenere il tipo MIME di file caricato a Jersey
- 18. jQuery o JavaScript: richiama il tipo MIME di file client
- 19. Come determinare se un tipo è un tipo di collezione?
- 20. determinare se un tipo è un tipo anonimo
- 21. Come impostare un tipo mime su un file con php?
- 22. Determinare se il tipo è dizionario
- 23. Qual è il tipo mime corretto per servire un file .ipa per iPhone?
- 24. MSOFFICE tipo MIME verifica
- 25. Tipo MIME per i file .txt?
- 26. MIME Tipo spoofing
- 27. Esiste un tipo MIME "predefinito"?
- 28. Il tipo MIME 'image/jpg' è uguale a 'image/jpeg'?
- 29. Con un NSDictionary, è possibile determinare il tipo di dati del valore?
- 30. Converti il tipo MIME nel file Estensione PHP
Che funziona. Grazie! – Nick