【Powershell】Get-ChildItem コマンドレットを利用してフォルダツリー構造の特定階層を抜き出す方法

【PR】この記事には広告を含む場合があります。

共有フォルダとか業務利用しているとフォルダ階層が深くなったり、管理できなくなることが多々あります。

また、「フォルダの指定の階層(第2階層までとか)までを抜き出したい」といった用途に使えるコマンドをを一つ紹介します。

ファイルサーバの管理では、第一階層の一覧はDOSコマンドでも対応できます。
しかし、第二階層のみを抜き出したりして一覧化するのは少し面倒です。

今回紹介する Powershell の “Get-ChildItem” コマンドレットを利用することで、指定の階層のフォルダ一覧を抜き出して、CSV出力することができます。

「Treeコマンドだとすべてのフォルダが抜き出される」とか「罫線が入ってしまう」といったわずらわしさから解放されます。

スポンサーリンク

目次

Get-ChildItem コマンドの機能

まずは、”Get-ChildItem” コマンドレットの機能をおさらいしてみます。

このコマンドは、【指定した場所でのアイテム(フォルダーやファイルなど)抽出】してくれます。

「アイテム」と表記しているのは、ファイル・フォルダーだけではなく様々な情報も抜き出すことができます。

今回はフォルダー一覧を抜き出すために、”Get-ChildItem” コマンドレットを利用します。

このコマンドレットの注意点としまして、「空のディレクトリーは表示しません」。
つまり、CSV出力しようとしても、空ディレクトリーだけは抜き出すことはできません。


Get-ChildItem
[[-Path] <string[]>]
[[-Filter] <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Depth <uint32>]
[-Force]
[-Name]
[-Attributes <FlagsExpression[FileAttributes]>]
[-FollowSymlink]
[-Directory]
[-File]
[-Hidden]
[-ReadOnly]
[-System]
[<CommonParameters>]
コマンドおよびオプション

フォルダ階層指定でフォルダ名を抽出

単一のフォルダ指定して、フォルダの名前を抜き出します。
Get-ChildItemコマンドの使って共有フォルダを見てみます。


Get-ChildItem -Path [共有フォルダ]
特定のフォルダ一覧を抜き出す

カレントディレクトリの状況がわかります。


Get-ChildItem -Path [共有フォルダ] -Depth [数字]
特定のフォルダのアイテム一覧を抜き出す

単一のフォルダ階層が抜き出せましたら、次は階層指定で抜き出していきます。
オプションの -Depth をつけます。

カレントフォルダの位置から1つ下の階層を調べるときは、Depth オプションに “1” を入力します。
サンプルですと、\\localhost\Share\share01 までのアイテムを表示します。

ただ、これではファイルも同時に出力してしまします。


Get-ChildItem -Path [共有フォルダ] -Depth [数字] -Directory
特定階層のフォルダのみを抜き出す

オプションの -Directory をつけます。
このコマンドで必要な階層の一覧が作成できます。

Mode が”d” のみとなっているので、フォルダのみ抜き出せたのがわかります。
これをExport-Csvコマンドへパイプで渡してCSVへエクスポートすると便利です。


Get-ChildItem -Path [共有フォルダ] -Depth [数字] -Directory | Export-Csv -Path [ファイル出力先] -NoTypeInformation -Encoding UTF8
CSVへエクスポートする

まとめ

Get-ChildItem コマンドを使って、階層指定のフォルダ一覧を抜き出してみました。
このコマンドはファイル・フォルダの表示だけではなく、レジストリなどの設定も検索できる重宝するコマンドです。

今までは共有フォルダの一覧を作製するのに Dir コマンドを駆使して時間をかけていましたが、Powershell ですとCSV出力ができ、簡単にフォルダ一覧が抜き出せます。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次