VBSでMacの不可視ファイル&フォルダを削除

Macの不可視ファイルとフォルダ、Winで見た時邪魔ですよね。
「.DS_Store」とかそんなファイル達です。
MacとWin両方使ってると、特にそう思ったりします。
最近HDDの整理をして余計そう思うんですが、そんなことで一括削除するVBScriptを組みました。

'DelMacObjects.vbs
Option Explicit

Dim objArgs, fs
Dim cnt, i
Set objArgs = WScript.Arguments
Set fs = CreateObject("Scripting.FileSystemObject")
If objArgs.Count = 0 Then WScript.Quit
For i = 0 to objArgs.Count - 1
    If fs.FolderExists(objArgs(i)) Then
        DelMacObjects objArgs(i)
        cnt = cnt + 1
    End If
Next
Set fs = Nothing
If cnt Then MsgBox "完了しました。"

Sub DelMacObjects(dpath)
    Dim fs, f, d
    Dim delObjPath()
    Dim cnt, i
    Set fs = CreateObject("Scripting.FileSystemObject")
    For Each f In fs.GetFolder(dpath).Files
        Select Case f.Name
            '削除ファイル名を入力
            Case ".DS_Store", "._.DS_Store", "FINDER.DAT", "RESOURCE.FRK", "Thumbs.db", "._.Trashes", ".fseventsd"
                ReDim Preserve delObjPath(cnt)
                delObjPath(cnt) = f.Path
                cnt = cnt + 1
        End Select
    Next
    If cnt Then
        For i = 0 To cnt - 1
            fs.DeleteFile delObjPath(i)
        Next
    End If
    cnt = 0
    ReDim delObjPath(0)
    For Each d In fs.GetFolder(dpath).SubFolders
        Select Case d.Name
            '削除フォルダ名を入力
            Case ".Trashes", ".fseventsd"
                ReDim Preserve delObjPath(cnt)
                delObjPath(cnt) = d.Path
                cnt = cnt + 1
        End Select
    Next
    If cnt Then
        For i = 0 To cnt - 1
            fs.DeleteFolder delObjPath(i)
        Next
    End If
    cnt = 0
    ReDim delObjPath(0)
    For Each d In fs.GetFolder(dpath).SubFolders
        DelMacObjects d.Path
    Next
    Set fs = Nothing
End Sub


For Eachの中で削除が出来ないのがもどかしいなぁ(笑)

使い方


削除対象が足りない場合、Select Case文のとこに追加します。
上のVBScriptでは、Macの不可視ファイルではありませんが、
Thumbs.dbも邪魔なので削除対象にしてます。
このVBSファイルにフォルダをドラッグすると動作します。
複数フォルダのドラッグもいけます。
再帰処理してるので、階層が多かったりするともしかして動かないかも。。

右クリックの「送る」に登録


右クリックの「送る」に登録しとくと便利ですね。
「送る」に登録するには、「ファイル名を指定して実行」で、
「sendto」と入力し表示されるフォルダにVBSファイル、若しくはそのショートカットをぶっ込めば登録出来ます。


※このスクリプトによるいかなる損害も責任を負いませんので、ご使用は自己責任の範囲でお願いします。



Windows自動処理のためのWSHプログラミングガイド

Windows自動処理のためのWSHプログラミングガイド