Powershell

【Powershell】空のフォルダを検出する<サンプルあり>

スポンサーラベル
Powershell

当サイトはアフィリエイト広告を利用しています。

ファイルサーバの整理をしていると、よくフォルダ内のファイルが何もない状態なのにフォルダだけが存在している場合があります。

そのような空のフォルダは無駄ですので、抽出するスクリプトについて作成してみました。

今回は空のフォルダを検出して、削除のコマンドを表示するようにしています。少し変更すれば自動削除することも可能です。
もしよければ使ってみてください。

Powershellスクリプト(サンプル)

1点だけ注意です。
私の方でも使ってみたのですが、フォルダ名に鍵カッコ[]が含まれているとうまく動作しなかったのでスキップするようにしています。

$TARGET_FOLDER = "\\fileserver\project01\"

$folders = Get-ChildItem $TARGET_FOLDER -Directory -Recurse | Sort-Object -Descending

foreach ($folder in $folders){

    # フォルダ名に鍵カッコ[]が含まれているとうまく動作しないためスキップ
    if($folder.FullName -match "\[|\]"){
        continue
    }
    if((Get-ChildItem $folder.fullname).count -eq 0){
        Write-Host ("Remove-Item "+$folder.fullname)
    }
}

今回は以上となります。

PowerShellの学習におすすめの書籍

PowerShell を体系的に学ぶなら、PowerShell Core 以降のクロスプラットフォーム対応をふまえた解説書が分かりやすいです。Windows の自動化にとどまらず、macOS や Linux でも動く現在の PowerShell を、基礎から実務での使い方まで通して押さえられます。

PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説

あわせて読みたい

コメント

タイトルとURLをコピーしました