« [Form]読取専用になったフォームの読取専用フラグを解除する | トップページ | [メンテナンス] Containers以下サンドボックスアプリのキャッシュを全部ゴミ箱に入れる »

[メンテナンス]Thumbs.dbやDS_Store等をゴミ箱に移動させる



ダウンロード - movetotrash.zip




AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005# com.cocolog-nifty.quicktimer.icefloe
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007##自分環境がos12なので2.8にしているだけです
008use AppleScript version "2.8"
009use framework "Foundation"
010use framework "UniformTypeIdentifiers"
011use framework "AppKit"
012use scripting additions
013
014property refMe : a reference to current application
015set appFileManager to refMe's NSFileManager's defaultManager()
016
017##############################
018#キーワード
019set strFileName to (".DS_Store") as text
020
021##############################
022#ダイアログ
023set strName to (name of current application) as text
024if strName is "osascript" then
025  tell application "Finder" to activate
026else
027  tell current application to activate
028end if
029#
030set appFileManager to refMe's NSFileManager's defaultManager()
031set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
032set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
033set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
034
035set strMes to "フォルダを選んでください" as text
036set strPrompt to "フォルダを選択してください" as text
037try
038  set aliasDirPath to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation with invisibles and showing package contents without multiple selections allowed) as alias
039on error
040  log "エラーしました"
041  return "エラーしました"
042end try
043##############################
044#クローズパスをオープンディレクトリパスに
045set strDirPath to (POSIX path of aliasDirPath) as text
046set ocidDirPathStr to refMe's NSString's stringWithString:(strDirPath)
047set ocidDirPath to ocidDirPathStr's stringByStandardizingPath()
048set strDirPath to ocidDirPath as text
049
050##############################
051#コマンド整形
052set strCommandText to ("\"/usr/bin/find\"   \"" & strDirPath & "\" -type f -name  \"" & strFileName & "\"") as text
053log "\n" & strCommandText & "\n"
054#コマンド実行
055set strExecCommand to ("/bin/zsh -c '" & strCommandText & "'") as text
056try
057  set strResponse to (do shell script strExecCommand) as text
058  
059on error
060  log "osascript でエラーしました"
061  return false
062end try
063
064##############################
065#
066set ocidResponseString to refMe's NSMutableString's stringWithString:(strResponse)
067set ocidPathArray to ocidResponseString's componentsSeparatedByString:("\r")
068#
069set numCntArray to ocidPathArray's |count|()
070if numCntArray = 1 then
071  set strChkResponse to ocidPathArray's firstObject() as text
072  if strChkResponse is "" then
073    display alert "対象ファイルはありませんでした" giving up after 2
074    return
075  end if
076end if
077
078
079##############################
080#
081repeat with itemPath in ocidPathArray
082  set strFilePath to itemPath as text
083  set ocidFilePathStr to (refMe's NSString's stringWithString:(strFilePath))
084  set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
085  set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidFilePath) isDirectory:false)
086  set ocidFileName to ocidFilePathURL's lastPathComponent()
087  #ゴミ箱
088  set appFileManager to refMe's NSFileManager's defaultManager()
089  set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSTrashDirectory) inDomains:(refMe's NSUserDomainMask))
090  set ocidTrashDirPathURL to ocidURLsArray's firstObject()
091  set ocidDistResultURL to (ocidTrashDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:(true))
092  #
093  set boolDirExists to (appFileManager's fileExistsAtPath:(ocidFilePath) isDirectory:(false))
094  if boolDirExists = true then
095    set appFileManager to refMe's NSFileManager's defaultManager()
096    set somesome to ""
097    set listDone to (appFileManager's trashItemAtURL:(ocidFilePathURL) resultingItemURL:(ocidDistResultURL) |error| :(reference))
098    if (item 2 of listDone) ≠ (missing value) then
099      set strErrorNO to (item 2 of listDone)'s code() as text
100      set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
101      refMe's NSLog("■:" & strErrorNO & strErrorMes)
102      return "エラーしました" & strErrorNO & strErrorMes
103    end if
104  else if boolDirExists = false then
105    log "何らかの理由でファイルを見つけられませんでした"
106    log strFilePath
107  end if
108  
109end repeat
AppleScriptで生成しました

AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005# com.cocolog-nifty.quicktimer.icefloe
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007##自分環境がos12なので2.8にしているだけです
008use AppleScript version "2.8"
009use framework "Foundation"
010use framework "UniformTypeIdentifiers"
011use framework "AppKit"
012use scripting additions
013
014property refMe : a reference to current application
015set appFileManager to refMe's NSFileManager's defaultManager()
016
017##############################
018#キーワード
019set strFileName to ("Thumbs.db") as text
020
021##############################
022#ダイアログ
023set strName to (name of current application) as text
024if strName is "osascript" then
025  tell application "Finder" to activate
026else
027  tell current application to activate
028end if
029#
030set appFileManager to refMe's NSFileManager's defaultManager()
031set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
032set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
033set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
034
035set strMes to "フォルダを選んでください" as text
036set strPrompt to "フォルダを選択してください" as text
037try
038  set aliasDirPath to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation with invisibles and showing package contents without multiple selections allowed) as alias
039on error
040  log "エラーしました"
041  return "エラーしました"
042end try
043##############################
044#クローズパスをオープンディレクトリパスに
045set strDirPath to (POSIX path of aliasDirPath) as text
046set ocidDirPathStr to refMe's NSString's stringWithString:(strDirPath)
047set ocidDirPath to ocidDirPathStr's stringByStandardizingPath()
048set ocidDirPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidDirPath) isDirectory:true)
049
050
051##############################
052#ディレクトリのコンテツを収集
053#収集する付随プロパティ
054set ocidPropertiesForKeys to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
055ocidPropertiesForKeys's addObject:(refMe's NSURLIsRegularFileKey)
056ocidPropertiesForKeys's addObject:(refMe's NSURLNameKey)
057ocidPropertiesForKeys's addObject:(refMe's NSURLPathKey)
058#プロパティ
059set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
060####ディレクトリのコンテツを収集
061set ocidEmuDict to (appFileManager's enumeratorAtURL:(ocidDirPathURL) includingPropertiesForKeys:ocidPropertiesForKeys options:(ocidOption) errorHandler:(reference))
062###戻り値用のリストに格納
063set ocidEmuFileURLArray to ocidEmuDict's allObjects()
064
065
066##############################
067#本処理
068repeat with itemURL in ocidEmuFileURLArray
069  #ファイルか?を判定する
070  set listResult to (itemURL's getResourceValue:(reference) forKey:(refMe's NSURLIsRegularFileKey) |error| :(reference))
071  set boolIsRegularFileKey to (item 2 of listResult) as boolean
072  if boolIsRegularFileKey is true then
073    #ファイルならファイル名を取得して
074    set strItemFileName to itemURL's lastPathComponent() as text
075    #ファイル名が指定のファイル名と同じなら
076    if strFileName is strItemFileName then
077      set appFileManager to refMe's NSFileManager's defaultManager()
078      #ゴミ箱へ入れる
079      set listDone to (appFileManager's trashItemAtURL:(itemURL) resultingItemURL:(missing value) |error| :(reference))
080      if (item 2 of listDone) ≠ (missing value) then
081        set strErrorNO to (item 2 of listDone)'s code() as text
082        set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
083        refMe's NSLog("■:" & strErrorNO & strErrorMes)
084        return "エラーしました" & strErrorNO & strErrorMes
085      end if
086    end if
087  end if
088end repeat
AppleScriptで生成しました

|

« [Form]読取専用になったフォームの読取専用フラグを解除する | トップページ | [メンテナンス] Containers以下サンドボックスアプリのキャッシュを全部ゴミ箱に入れる »

Admin Maintenance」カテゴリの記事