#author("2018-10-29T12:32:51+09:00","","")
#author("2018-10-29T12:33:12+09:00","","")
#navi(../)
* ディレクトリのみ、ファイルのみの一覧を表示する方法 [#f5ba04fe]
PowerShellでディレクトリのみ、ファイルのみの一覧を表示する実行例を以下に記します。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 関連記事 [#wfbc8f4e]
本記事と同等の内容でCSV出力している記事です。
-[[PowerShellでファイル一覧を取得し各ファイルの情報をCSV化する方法>PowerShell/ファイル一覧を取得し各ファイルの情報をCSV化する方法]]
-[[PowerShellでファイル一覧を取得し各ファイルの情報をCSV化する方法>PowerShell/ファイル一覧を取得し各ファイルの情報をCSV化する方法]]~

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

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

** PSIsContainerを使用 [#b97b6ce6]
ディレクトリの場合、PSIsContainerはTrueが返却されます。
 Get-ChildItem * | Where-Object { $_.PSIsContainer }
Where-Objectは?と記述することもできます。
 Get-ChildItem * | ? { $_.PSIsContainer }

** Test-Pathコマンドレットを使用 [#t4daf2b9]
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 }

** サブフォルダも対象にしたい場合 [#b8e2fdfe]
サンプルは、Get-ChildItemの対象を*にしています。~
必要に応じて*を確認したいパスに変更してください。~
サブフォルダも対象にしたい場合は、Get-ChildItemの-Recurseオプションを使用します。
 Get-ChildItem -Recurse * | ? { $_.PSIsContainer }
フルパスで表示したいのであれば、以下のようにできます。
 Get-ChildItem -Recurse * | ? { $_.PSIsContainer } | % { $_.FullName }

** ディレクトリ数を確認したい [#dc7bfe45]
上記で取得したディレクトリ数を表示したい場合は、以下のようになります。
 Get-ChildItem * | ? { $_.PSIsContainer } | Measure-Object
数字のみを取得
 (Get-ChildItem * | ? { $_.PSIsContainer } | Measure-Object).Count

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

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

** PSIsContainerを使用 [#u88ce0d2]
ファイルの場合、PSIsContainerはFalseが返却されます。
 Get-ChildItem * | Where-Object { ! $_.PSIsContainer }
Where-Objectは?と記述することもできます。
 Get-ChildItem * | ? { $_.PSIsContainer }

** Test-Pathコマンドレットを使用 [#ec74e759]
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 }

** サブフォルダも対象にしたい場合 [#j65293e5]
サンプルは、Get-ChildItemの対象を*にしています。~
必要に応じて*を確認したいパスに変更してください。~
サブフォルダも対象にしたい場合は、Get-ChildItemの-Recurseオプションを使用します。
 Get-ChildItem -Recurse * | ? { ! $_.PSIsContainer }
フルパスで表示したいのであれば、以下のようにできます。
 Get-ChildItem -Recurse * | ? { ! $_.PSIsContainer } | % { $_.FullName }

** ファイル数を確認したい [#qd08bb9a]
上記で取得したディレクトリ数を表示したい場合は、以下のようになります。
 Get-ChildItem * | ? { ! $_.PSIsContainer } | Measure-Object
数字のみを取得
 (Get-ChildItem * | ? { ! $_.PSIsContainer } | Measure-Object).Count

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

* その他 [#l809d0ac]
この資料では、以下のようにしてフルパスを取得しています。
 $_.FullNmae
または、以下のようにSelect-Objectでも可能です。~
ただし、ファイルに出力すると後ろにスペースがついていますので注意です。
 Select-Object FullName



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

#htmlinsertpcsp(win-btm.html,win-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS