8

PowerShell で特定のファイルの種類を特定することはできますか? たとえば、 のパスを渡した場合、C:\Foo.zipそのパスにあるファイルが実際には zip ファイルであり、他のファイルではないことを判断させることはできますか?

4

4 に答える 4

7

PowerShell は、他の Windows オペレーティング システムと同様に、拡張子に基づいてファイルの種類を推測するだけです。

ただし、実際にファイルの内容を調べるサードパーティのファイル タイプ推測プログラムがあります。

この質問に対する真に優れた回答が SuperUser にあります。最も推奨されるのはFile for WindowsTrIDです。

于 2012-07-28T05:33:08.217 に答える
3

レジストリから 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

-ジョー

于 2012-10-24T16:46:13.057 に答える