サブフォルダのパスを表示

はじめにファイルとディレクトリ両方表示してみたいと思います。get-childitemコマンドレットを使用してディレクトリ・ファイルの情報を取得してみます。すべてのサブフォルダの項目を取得する場合は-recurseというオプションを指定します。

get-childitemコマンドレットはDirectoryInfoオブジェクトの配列、FileInfoオブジェクトの配列を返します。配列の要素を1つ1つ取り出してループさせたい場合は、foreach-objectを使用します。foreach-objectは$_という変数に要素を代入します。そのため、$_からオブジェクトのメンバーにアクセス可能となります。また、DirectoryInfoオブジェクト、FileInfoオブジェクトはfullnameというプロパティによりフォルダ・ファイルパスを取得することが出来ます。

次にフォルダのパスのみを表示してみます。今回着目したのが、DirectoryInfoオブジェクト、FileInfoオブジェクトのModeというプロパティです。

おそらく、先頭がdとなっているものがフォルダという意味だと思います。そこで、Modeプロパティの先頭文字が"d"でフォルダかファイルかを区別してみます。ModeプロパティはString型のためsubstringで先頭文字を取得します。if分で"d"に一致した場合、画面に出力するようにします。

これで、サブフォルダのパスを表示することが出来ました。