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ファイル、若しくはそのショートカットをぶっ込めば登録出来ます。
※このスクリプトによるいかなる損害も責任を負いませんので、ご使用は自己責任の範囲でお願いします。
- 作者: 五十嵐貴之
- 出版社/メーカー: ソシム
- 発売日: 2009/06/01
- メディア: 単行本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (27件) を見る