実現したいこと
初心者の質問で申し訳ございません。
PowerShellにて特定のディレクトリ配下で空フォルダの一覧を作成したいと考えています。
出力は対象フォルダのフルパスとフォルダの最終更新日時です。
回帰的に特定のディレクトリ配下をサブフォルダまで探しフルパスを表示させたいと考えておりますが、空白ではないフォルダまで一覧に表示されてしまいます。
NETで検索し下記の内容が出てきましたが
これでも空ではない親フォルダが一覧に表示されてしまいます。
$items=Get-ChildItem -Recurse -Path 'C:' -Directory
foreach($item in $items)
{
if((Get-ChildItem $item.fullname).Count -eq 0)
{
$item
}
}
NETでサンプルを調べても空のフォルダを削除していく物しかみあたらず皆様にご教示いただければと思い投稿させていただきました。
発生している問題・分からないこと
サンプルのコードではどうしても空ではない親フォルダも表示されてしまいます。
本当に空のフォルダのみ表示させる方法はございますでしょうか。
該当のソースコード
PowerShell
1===================================================================== 2$items=Get-ChildItem -Recurse -Path 'C:\' -Directory 3foreach($item in $items) 4{ 5 if((Get-ChildItem $item.fullname).Count -eq 0) 6 { 7 $item 8 } 9} 10=====================================================================
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
NETや本などでいろいろ調べてみましたが適切な答えが見当たりませんでした。
補足
特になし
https://teratail.com/help/question-tips
は読みましたか?
読んだ結果を本文に反映ください。解決のヒントを探れるかもしれません。
つたない質問で申し訳ございません。
確認させていただき、改めてご質問をさせていただきます。
(Get-ChildItem $item.fullname).Count ですと、hidden ファイルなどはカウントしませんので、GetFileSystemInfos() を使うとよいかもしれません。
Get-ChildItem -Recurse -Path 'C:\' -Directory | Where-Object { $_.GetFileSystemInfos().Count -eq 0 }