PowerShell可以確定給定文件的類型是什麼?例如,如果我將它傳遞給路徑C:\Foo.zip
,我可否確定該路徑中的文件實際上是一個zip文件而不是其他文件?PowerShell:可以確定文件的MIME類型?
回答
與Windows操作系統的其餘部分一樣,PowerShell僅基於擴展名猜測文件類型。
但是,有第三方文件類型guesser程序在那裏,那些實際上看看文件的內容。
有一個truly excellent answer to this question over on SuperUser。熱門推薦包括File for Windows和TrID。
您可以從註冊表中獲取mime類型。不幸的是,HKEY_CURRENT_USER配置單元未被自動映射爲驅動器,因此您必須首先進行檢查。
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;
}
下面是一個例子使用
PS> Get-MimeType -extension .zip
application/x-zip-compressed
-Joe
這實際上並不測試目標文件的內容,它只是讀取擴展並從操作系統查找文件類型關係。 – 2014-03-27 20:53:05
如果你有.NET 4.5 +,你可以使用靜態方法System.Web.MimeMapping.GetMimeMapping
:
> Add-Type -AssemblyName "System.Web"
> [System.Web.MimeMapping]::GetMimeMapping("C:\foo.zip")
application/x-zip-compressed
幸得this answer有關.NET的類似問題。
編輯:錯誤的問題。 GetMimeMapping
通過擴展名返回MIME類型,它不分析內容。
$ext = ".exe"
$null = New-PSDrive HKCR Registry HKEY_CLASSES_ROOT -ea 0
$mime = (gp HKCR:$ext)."Content Type"
write-host $ext $mime
請詳細說明您的答案(告訴我們問題是什麼,以及如何通過此代碼修復此問題)。純代碼答案教育程度較低,使用有限。 – 2017-09-09 16:57:10
您應該爲代碼提供更多的上下文/解釋,特別是因爲已經有幾個高質量的答案。請閱讀網站[旅遊]以及[答案]。 – EJoshuaS 2017-09-09 22:37:54
- 1. 無法確定文件的MIME類型
- 2. 確定excel文件的MIME類型
- 3. 確定文件的MIME類型
- 4. css.map文件的正確MIME類型
- 5. 確定正在下載的文件的MIME類型
- 6. 在java中確定文件的MIME類型的最佳方法?
- 7. MIME類型的文件
- 8. 警告:JSF1091:沒有MIME類型可以發現文件DynamicContent類
- 9. Finfo_file上載的文件來確定MIME類型
- 10. 如何確定適當的MIME類型
- 11. 可以配置Github Pages文件的MIME類型嗎?
- 12. 如何通過內容確定文件MIME類型?
- 13. UIWebView和文件MIME類型
- 14. .alx文件MIME類型
- 15. 自定義文件類型的MIME類型
- 16. 無法獲取。FLV文件的正確的MIME類型
- 17. 吉他pro文件的MIME類型?
- 18. MIME類型的下載文件
- 19. 什麼是.py文件的MIME類型?
- 20. mime類型的Nginx緩存文件
- 21. 適當的MIME媒體類型文件
- 22. 獲取MIME類型的文件
- 23. 更改非php文件的MIME類型?
- 24. 什麼是wsdl文件的mime類型?
- 25. 設置文件的確切MIME類型是否會改進?
- 26. 如何確定Powershell中的XML類型?
- 27. 將特定文件映射到Cherokee中的特定MIME類型
- 28. 確定HTTP文件上傳的MIME類型的最佳方法是什麼?
- 29. 可可:獲取Mime類型的網址?
- 30. JSON的正確MIME類型是什麼?
這是行得通的。謝謝! – Nick 2012-07-28 17:25:40