このエントリーをはてなブックマークに追加


ディレクトリのみ、ファイルのみの一覧を表示する方法

PowerShellでディレクトリのみ、ファイルのみの一覧を表示する実行例を以下に記します。


関連記事

本記事と同等の内容でCSV出力している記事です。

PowerShellで各ファイルやディレクトリのセキュリティ情報を取得する記事です。

ディレクトリのみの一覧を表示する

Get-ChildItem, Where-Objectコマンドレットを使うことにより、簡単にディレクトリのみを表示することができます。
ディレクトリであることを判別する方法は、PSIsContainerとTest-Pathを使用して判別しています。

PSIsContainerを使用

ディレクトリの場合、PSIsContainerはTrueが返却されます。

Get-ChildItem * | Where-Object { $_.PSIsContainer }

Where-Objectは?と記述することもできます。

Get-ChildItem * | ? { $_.PSIsContainer }

Test-Pathコマンドレットを使用

Test-Pathの場合、-PathType containerを使用します。
ディレクトリの場合はTrueが返却されます。

Get-ChildItem * | Where-Object { (Test-Path -PathType container $_) -eq $True }

Where-Objectは?と記述することもできます。

Get-ChildItem * | ? { (Test-Path -PathType container $_) -eq $True }

サブフォルダも対象にしたい場合

サンプルは、Get-ChildItemの対象を*にしています。
必要に応じて*を確認したいパスに変更してください。
サブフォルダも対象にしたい場合は、Get-ChildItemの-Recurseオプションを使用します。

Get-ChildItem -Recurse * | ? { $_.PSIsContainer }

フルパスで表示したいのであれば、以下のようにできます。

Get-ChildItem -Recurse * | ? { $_.PSIsContainer } | % { $_.FullName }

ディレクトリ数を確認したい

上記で取得したディレクトリ数を表示したい場合は、以下のようになります。

Get-ChildItem * | ? { $_.PSIsContainer } | Measure-Object

数字のみを取得

(Get-ChildItem * | ? { $_.PSIsContainer } | Measure-Object).Count

サブフォルダも対象にしたい場合は、Get-ChildItemの-Recurseオプションを使用します。

ファイルのみの一覧表示

Get-ChildItem, Where-Objectコマンドレットを使うことにより、簡単にファイルのみを表示することができます。
ファイルであることを判別する方法は、PSIsContainerとTest-Pathを使用して判別しています。

PSIsContainerを使用

ファイルの場合、PSIsContainerはFalseが返却されます。

Get-ChildItem * | Where-Object { ! $_.PSIsContainer }

Where-Objectは?と記述することもできます。

Get-ChildItem * | ? { $_.PSIsContainer }

Test-Pathコマンドレットを使用

Test-Pathの場合、-PathType containerを使用します。
ファイルの場合はFalseが返却されます。

Get-ChildItem * | Where-Object { (Test-Path -PathType container $_) -eq $False }

Where-Objectは?と記述することもできます。

Get-ChildItem * | ? { (Test-Path -PathType container $_) -eq $False }

サブフォルダも対象にしたい場合

サンプルは、Get-ChildItemの対象を*にしています。
必要に応じて*を確認したいパスに変更してください。
サブフォルダも対象にしたい場合は、Get-ChildItemの-Recurseオプションを使用します。

Get-ChildItem -Recurse * | ? { ! $_.PSIsContainer }

フルパスで表示したいのであれば、以下のようにできます。

Get-ChildItem -Recurse * | ? { ! $_.PSIsContainer } | % { $_.FullName }

ファイル数を確認したい

上記で取得したディレクトリ数を表示したい場合は、以下のようになります。

Get-ChildItem * | ? { ! $_.PSIsContainer } | Measure-Object

数字のみを取得

(Get-ChildItem * | ? { ! $_.PSIsContainer } | Measure-Object).Count

サブフォルダも対象にしたい場合は、Get-ChildItemの-Recurseオプションを使用します。

その他

この資料では、以下のようにしてフルパスを取得しています。

$_.FullNmae

または、以下のようにSelect-Objectでも可能です。
ただし、ファイルに出力すると後ろにスペースがついていますので注意です。

Select-Object FullName

以上、Powershellでディレクトリ一覧のみ、ファイル一覧のみを表示する方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-10-29 (月) 12:33:12