フォルダかファイルかを判別する

Get-ChildItem コマンドレットを使用してファイルの一覧を表示し、Modeの列を参照すればファイルなのかディレクトリなのかを判断することができます。

しかし、スクリプトでファイルかフォルダを判別するのにModeプロパティを使うのはあまり効率が良くありません。

そこで Foreach-Objectと$_.PSIsContainerを使用して判別する方法を考えてみました。

下記がそのコード例です。

Get-ChildItem | Foreach-Object {
  if ( $_.PSIsContainer ) 
  {
    Write-Host "フォルダ: " -NoNewLine
  }
  else
  {
    Write-Host "ファイル" -NoNewLine
  }
  $_.Name
}

$_.PSIsContainerはオブジェクトがフォルダであればTrueを返します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>