もくじ
📝 はじめに
PowerShellでフォルダ整理やクリーンアップを行っていると、
「中身が空のフォルダだけ削除したい」
「不要になったディレクトリ構造をきれいにしたい」
「手作業で確認するのは面倒」
と感じることはありませんか?
そんなときに役立つのが、
Get-ChildItem と
Remove-Item を組み合わせた
空フォルダ削除の実用テクニックです。
- バックアップ後の不要フォルダ整理
- アプリ削除後に残った空フォルダの掃除
- 定期的なメンテナンス作業
✅ このコマンドでできること(要点)
- 空のフォルダだけを判別できる
- 複数階層にまたがるフォルダを処理できる
- 不要なフォルダだけを安全に削除できる
- スクリプト化して自動実行できる
✅ Get-ChildItem + Remove-Item でできること
Get-ChildItem を使うと、
フォルダやファイルの一覧を取得できます。
その中から「中身が何もないフォルダ」だけを条件で抽出し、
Remove-Item で削除することで、
空フォルダだけをピンポイントで削除できます。
誤ってファイル入りのフォルダを消してしまうリスクを
抑えられるのが大きなメリットです。
🧩 基本構文
Get-ChildItem 対象パス -Directory |
Where-Object { (Get-ChildItem $_.FullName).Count -eq 0 } |
Remove-Item
空フォルダかどうかを判定したうえで削除します。
▶ 基本的な使い方(まずこれだけ)
🔹 指定フォルダ直下の空フォルダを削除する
Get-ChildItem C:\Work -Directory |
Where-Object { (Get-ChildItem $_.FullName).Count -eq 0 } |
Remove-Item
このコマンドでエラーが出なければ、
空フォルダのみが削除されています。
🔹 削除せず、まず確認する(テスト)
Get-ChildItem C:\Work -Directory |
Where-Object { (Get-ChildItem $_.FullName).Count -eq 0 }
事前に確認することで、安心して次の操作に進めます。
🛠 よく使われる指定例
🔹 サブフォルダも含めて空フォルダを削除する
Get-ChildItem C:\Work -Directory -Recurse |
Where-Object { (Get-ChildItem $_.FullName).Count -eq 0 } |
Remove-Item
階層の深いフォルダ構造でもまとめて整理できます。
🔹 削除対象をログとして確認する
Get-ChildItem C:\Work -Directory -Recurse |
Where-Object { (Get-ChildItem $_.FullName).Count -eq 0 } |
Tee-Object -FilePath C:\Logs\empty_folders.txt |
Remove-Item
削除したフォルダを後から確認できます。
💼 実務でよく使う使用例(応用)
🔹 定期メンテナンスで空フォルダを整理
$target = "C:\Data"
Get-ChildItem $target -Directory -Recurse |
Where-Object { (Get-ChildItem $_.FullName).Count -eq 0 } |
Remove-Item
🔹 削除前に WhatIf で確認する
Get-ChildItem C:\Work -Directory -Recurse |
Where-Object { (Get-ChildItem $_.FullName).Count -eq 0 } |
Remove-Item -WhatIf
- -Recurse で階層を一括処理
- Tee-Object で削除ログ保存
- -WhatIf で安全確認
🧩 よくある勘違い・つまずきポイント
- 隠しファイルがあると空フォルダと判定されない
- 権限不足で削除できない場合がある
- フォルダ数が多いと処理に時間がかかる
- 削除前の確認を省略してしまう
- -Recurse の指定忘れ
⚠ エラー・うまく動かないときの確認ポイント
- 対象フォルダのパスが正しいか
- 隠しファイルやシステムファイルが存在していないか
- 管理者権限が必要な場所ではないか
- -WhatIf を使って事前確認したか
🧠 注意点
空フォルダ削除は便利ですが、
処理対象を誤ると意図しない場所まで削除する可能性があります。
初めて実行する場合は、
-WhatIf や
事前確認を必ず行いましょう。
📌 まとめ
- Get-ChildItem でフォルダを列挙
- 空フォルダだけを条件で抽出
- Remove-Item で安全に削除
- メンテナンス・整理作業に最適
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- 空フォルダを削除したい
- 不要なディレクトリを整理したい
- フォルダ構造をきれいにしたい
- 削除前に確認したい
- エラーや実行できない原因を調べたい
- PowerShellでメンテナンスしたい
- 安全に削除したい
