AppleScript NSFileManager enumeratorAtURL

NSDirectoryEnumerator まとめ

enumeratorAtURL等DirectoryEnumeratorを使用して収集したURLやパスの処理

基本的には処理方法は2種類
大量のファイルを処理する場合:nextObjectを使う
少量のファイルを処理する場合:allObjectsを使う

だいたい今のデバイスの基本性能なら
enumeratorAtURLで収集されるURLの想定が1000を超えるようなら
nextObjectを利用したほうが良いとされている



カテゴリー
AppleScript NSFileManager enumeratorAtURL
https://quicktimer.cocolog-nifty.com/icefloe/cat76058234/index.html

大量のファイルを処理する場合:nextObjectを使う
[NSDirectoryEnumerator]enumeratorAtURLで収集したURL  nextObject 同じフォルダ名の項目をリストにする
https://quicktimer.cocolog-nifty.com/icefloe/2024/05/post-c1704f.html

少量のファイルを処理する場合:allObjectsを使う
[NSDirectoryEnumerator]enumeratorAtURLで収集したURL allObjects 同じフォルダ名の項目をリストにする
https://quicktimer.cocolog-nifty.com/icefloe/2024/05/post-a0e375.html

|

[NSDirectoryEnumerator]enumeratorAtURLで収集したURL allObjects 同じフォルダ名の項目をリストにする


あくまでも参考にしてください

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

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# ループ処理にallObjectsを利用
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 "AppKit"
011use scripting additions
012
013
014property refMe : a reference to current application
015
016
017#############################
018###ダイアログを前面に出す
019set strName to (name of current application) as text
020if strName is "osascript" then
021  tell application "Finder" to activate
022else
023  tell current application to activate
024end if
025############
026set appFileManager to refMe's NSFileManager's defaultManager()
027set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
028set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
029set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
030############
031set strMes to "フォルダを選んでください" as text
032set strPrompt to "フォルダを選択してください" as text
033try
034  set aliasDirPath to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation without multiple selections allowed, invisibles and showing package contents) as alias
035on error
036  log "エラーしました"
037  return "エラーしました"
038end try
039############
040#パス
041set strDirPath to (POSIX path of aliasDirPath) as text
042set ocidDirPathStr to refMe's NSString's stringWithString:(strDirPath)
043set ocidDirPath to ocidDirPathStr's stringByStandardizingPath()
044set ocidDirPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidDirPath) isDirectory:true)
045############
046#コンテンツの収集
047#プロパティ
048set ocidPropertiesArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
049ocidPropertiesArray's addObject:(refMe's NSURLIsDirectoryKey)
050ocidPropertiesArray's addObject:(refMe's NSURLNameKey)
051ocidPropertiesArray's addObject:(refMe's NSURLPathKey)
052#オプション
053set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
054#収集
055set ocidEmuDict to appFileManager's enumeratorAtURL:(ocidDirPathURL) includingPropertiesForKeys:(ocidPropertiesArray) options:(ocidOption) errorHandler:(reference)
056
057#出力用の空の可変リスト
058set ocidDirPathURLAllArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
059############
060##allObjectsでループする方法
061set ocidEmuFileURLArray to ocidEmuDict's allObjects()
062repeat with itemURL in ocidEmuFileURLArray
063  #判定して(このケースはディレクトリなら)
064  set listResponse to (itemURL's getResourceValue:(reference) forKey:(refMe's NSURLIsDirectoryKey) |error| :(reference))
065  # listResponseは{boolean,VALUE,NSERROR}のリスト形式
066  if (item 1 of listResponse) is (true) then
067    set boolIsDir to (item 2 of listResponse) as boolean
068    if boolIsDir is true then
069      #出力用のリストに追加していく
070      (ocidDirPathURLAllArray's addObject:(itemURL))
071    end if
072  else if (item 1 of listResponse) is (false) then
073    log (item 3 of listResponse)'s code() as text
074    log (item 3 of listResponse)'s localizedDescription() as text
075  end if
076end repeat
077############
078set ocidSortedArrayM to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
079#ソート
080set ocidDescriptor to refMe's NSSortDescriptor's sortDescriptorWithKey:("lastPathComponent") ascending:(yes) selector:("localizedStandardCompare:")
081set ocidDescriptorArray to refMe's NSArray's arrayWithObject:(ocidDescriptor)
082set ocidSortedArray to ocidDirPathURLAllArray's sortedArrayUsingDescriptors:(ocidDescriptorArray)
083ocidSortedArrayM's addObjectsFromArray:(ocidSortedArray)
084############
085#重複行を残す
086set numCntArray to (ocidSortedArray's |count|()) as integer
087if numCntArray <= 3 then
088return "比較するほど項目がありません"
089end if
090#
091set numCntIndex to (numCntArray - 1) as integer
092repeat
093  #後方
094  set ocidURLA to (ocidSortedArrayM's objectAtIndex:(numCntIndex))
095  set strFileNameA to ocidURLA's lastPathComponent() as text
096  #前方
097  set ocidURLB to (ocidSortedArrayM's objectAtIndex:(numCntIndex - 1))
098  set strFileNameB to ocidURLB's lastPathComponent() as text
099  #比較
100  if strFileNameA is strFileNameB then
101    #同じなら比較を一つ飛ばす
102    set numCntIndex to numCntIndex - 1 as integer
103  else if strFileNameA is not strFileNameB then
104    #フォルダ名が違うなら後方を削除
105    (ocidSortedArrayM's removeObjectAtIndex:(numCntIndex))
106  end if
107  set numCntIndex to numCntIndex - 1 as integer
108  if numCntIndex = 1 then
109    exit repeat
110  end if
111  
112end repeat
113############
114#パスのリストにして
115set ocidOutPutArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
116repeat with itemURL in ocidSortedArrayM
117  set strDirPath to itemURL's |path|() as text
118  (ocidOutPutArray's addObject:(strDirPath))
119end repeat
120
121
122############
123#改行テキストに
124set ocidJoinText to ocidOutPutArray's componentsJoinedByString:("€n")
125#保存先
126set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
127set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
128set ocidSaveFilePathURL to ocidDesktopDirPathURL's URLByAppendingPathComponent:("同名フォルダリスト.txt")
129#保存
130set listDone to ocidJoinText's writeToURL:(ocidSaveFilePathURL) atomically:(true) encoding:(refMe's NSUTF8StringEncoding) |error| :(reference)
131
132if (item 1 of listDone) is true then
133  log "正常処理"
134else if (item 2 of listDone) ≠ (missing value) then
135  log (item 2 of listDone)'s code() as text
136  log (item 2 of listDone)'s localizedDescription() as text
137  return "エラーしました"
138end if
AppleScriptで生成しました

|

[NSDirectoryEnumerator]enumeratorAtURLで収集したURL  nextObject 同じフォルダ名の項目をリストにする


あくまでも参考にしてください

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

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# ループ処理にnextObjectを利用
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 "AppKit"
011use scripting additions
012
013
014property refMe : a reference to current application
015
016
017#############################
018###ダイアログを前面に出す
019set strName to (name of current application) as text
020if strName is "osascript" then
021  tell application "Finder" to activate
022else
023  tell current application to activate
024end if
025############
026set appFileManager to refMe's NSFileManager's defaultManager()
027set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
028set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
029set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
030############
031set strMes to "フォルダを選んでください" as text
032set strPrompt to "フォルダを選択してください" as text
033try
034  set aliasDirPath to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation without multiple selections allowed, invisibles and showing package contents) as alias
035on error
036  log "エラーしました"
037  return "エラーしました"
038end try
039############
040#パス
041set strDirPath to (POSIX path of aliasDirPath) as text
042set ocidDirPathStr to refMe's NSString's stringWithString:(strDirPath)
043set ocidDirPath to ocidDirPathStr's stringByStandardizingPath()
044set ocidDirPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidDirPath) isDirectory:true)
045############
046#コンテンツの収集
047#プロパティ
048set ocidPropertiesArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
049ocidPropertiesArray's addObject:(refMe's NSURLIsDirectoryKey)
050ocidPropertiesArray's addObject:(refMe's NSURLNameKey)
051ocidPropertiesArray's addObject:(refMe's NSURLPathKey)
052#オプション
053set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
054#収集
055set ocidEmuDict to appFileManager's enumeratorAtURL:(ocidDirPathURL) includingPropertiesForKeys:(ocidPropertiesArray) options:(ocidOption) errorHandler:(reference)
056##nextObjectてループする方法
057#出力用の空の可変リスト
058set ocidDirPathURLAllArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
059repeat
060  #次へ
061  set ocidEnuURL to ocidEmuDict's nextObject()
062  #空になったらループ終了
063  if ocidEnuURL = (missing value) then
064    exit repeat
065  else
066    #判定して(このケースはディレクトリなら)
067    set listResponse to (ocidEnuURL's getResourceValue:(reference) forKey:(refMe's NSURLIsDirectoryKey) |error| :(reference))
068    # listResponseは{boolean,VALUE,NSERROR}のリスト形式
069    if (item 1 of listResponse) is (true) then
070      set boolIsDir to (item 2 of listResponse) as boolean
071      if boolIsDir is true then
072        #出力用のリストに追加していく
073        ocidDirPathURLAllArray's addObject:(ocidEnuURL)
074      end if
075    else if (item 1 of listResponse) is (false) then
076      log (item 3 of listResponse)'s code() as text
077      log (item 3 of listResponse)'s localizedDescription() as text
078    end if
079  end if
080end repeat
081############
082set ocidSortedArrayM to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
083#ソート
084set ocidDescriptor to refMe's NSSortDescriptor's sortDescriptorWithKey:("lastPathComponent") ascending:(yes) selector:("localizedStandardCompare:")
085set ocidDescriptorArray to refMe's NSArray's arrayWithObject:(ocidDescriptor)
086set ocidSortedArray to ocidDirPathURLAllArray's sortedArrayUsingDescriptors:(ocidDescriptorArray)
087ocidSortedArrayM's addObjectsFromArray:(ocidSortedArray)
088############
089#重複行を残す
090set numCntArray to (ocidSortedArray's |count|()) as integer
091if numCntArray ≤ 3 then
092  return "比較するほど項目がありません"
093end if
094#
095set numCntIndex to (numCntArray - 1) as integer
096repeat
097  #後方
098  set ocidURLA to (ocidSortedArrayM's objectAtIndex:(numCntIndex))
099  set strFileNameA to ocidURLA's lastPathComponent() as text
100  #前方
101  set ocidURLB to (ocidSortedArrayM's objectAtIndex:(numCntIndex - 1))
102  set strFileNameB to ocidURLB's lastPathComponent() as text
103  #比較
104  if strFileNameA is strFileNameB then
105    #同じなら比較を一つ飛ばす
106    set numCntIndex to numCntIndex - 1 as integer
107  else if strFileNameA is not strFileNameB then
108    #フォルダ名が違うなら後方を削除
109    (ocidSortedArrayM's removeObjectAtIndex:(numCntIndex))
110  end if
111  set numCntIndex to numCntIndex - 1 as integer
112  if numCntIndex = 1 then
113    exit repeat
114  end if
115  
116end repeat
117############
118#パスのリストにして
119set ocidOutPutArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
120repeat with itemURL in ocidSortedArrayM
121  set strDirPath to itemURL's |path|() as text
122  (ocidOutPutArray's addObject:(strDirPath))
123end repeat
124
125
126############
127#改行テキストに
128set ocidJoinText to ocidOutPutArray's componentsJoinedByString:("\n")
129#保存先
130set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
131set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
132set ocidSaveFilePathURL to ocidDesktopDirPathURL's URLByAppendingPathComponent:("同名フォルダリスト.txt")
133#保存
134set listDone to ocidJoinText's writeToURL:(ocidSaveFilePathURL) atomically:(true) encoding:(refMe's NSUTF8StringEncoding) |error| :(reference)
135
136if (item 1 of listDone) is true then
137  log "正常処理"
138else if (item 2 of listDone) ≠ (missing value) then
139  log (item 2 of listDone)'s code() as text
140  log (item 2 of listDone)'s localizedDescription() as text
141  return "エラーしました"
142end if
AppleScriptで生成しました

|

[NSDirectoryEnumerator]enumeratorAtURLで収集したURL nextObjectでループする


あくまでも参考にしてください

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

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006##自分環境がos12なので2.8にしているだけです
007use AppleScript version "2.8"
008use framework "Foundation"
009use framework "AppKit"
010use scripting additions
011
012
013property refMe : a reference to current application
014
015
016#############################
017###ダイアログを前面に出す
018set strName to (name of current application) as text
019if strName is "osascript" then
020  tell application "Finder" to activate
021else
022  tell current application to activate
023end if
024############
025set appFileManager to refMe's NSFileManager's defaultManager()
026set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
027set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
028set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
029############
030set strMes to "フォルダを選んでください" as text
031set strPrompt to "フォルダを選択してください" as text
032try
033  set aliasDirPath to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation without multiple selections allowed, invisibles and showing package contents) as alias
034on error
035  log "エラーしました"
036  return "エラーしました"
037end try
038############
039#パス
040set strDirPath to (POSIX path of aliasDirPath) as text
041set ocidDirPathStr to refMe's NSString's stringWithString:(strDirPath)
042set ocidDirPath to ocidDirPathStr's stringByStandardizingPath()
043set ocidDirPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidDirPath) isDirectory:true)
044############
045#コンテンツの収集
046#プロパティ
047set ocidPropertiesArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
048ocidPropertiesArray's addObject:(refMe's NSURLIsDirectoryKey)
049ocidPropertiesArray's addObject:(refMe's NSURLNameKey)
050ocidPropertiesArray's addObject:(refMe's NSURLPathKey)
051#オプション
052set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
053#収集
054set ocidEmuDict to appFileManager's enumeratorAtURL:(ocidDirPathURL) includingPropertiesForKeys:(ocidPropertiesArray) options:(ocidOption) errorHandler:(reference)
055##nextObjectてループする方法
056#出力用の空の可変リスト
057set ocidDirPathURLAllArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
058repeat
059  #次へ
060  set ocidEnuURL to ocidEmuDict's nextObject()
061  #空になったらループ終了
062  if ocidEnuURL = (missing value) then
063    exit repeat
064  else
065    #判定して(このケースはディレクトリなら)
066    set listResponse to (ocidEnuURL's getResourceValue:(reference) forKey:(refMe's NSURLIsDirectoryKey) |error| :(reference))
067    # listResponseは{boolean,VALUE,NSERROR}のリスト形式
068    if (item 1 of listResponse) is (true) then
069      set boolIsDir to (item 2 of listResponse) as boolean
070      if boolIsDir is true then
071        #出力用のリストに追加していく
072        ocidDirPathURLAllArray's addObject:(ocidEnuURL)
073      end if
074    else if (item 1 of listResponse) is (false) then
075      log (item 3 of listResponse)'s code() as text
076      log (item 3 of listResponse)'s localizedDescription() as text
077    end if
078  end if
079end repeat
080log ocidDirPathURLAllArray as list
081
082
083return
AppleScriptで生成しました

|

[NSDirectoryEnumerator]enumeratorAtURLで収集したURL allObjectsでループする


あくまでも参考にしてください

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

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006##自分環境がos12なので2.8にしているだけです
007use AppleScript version "2.8"
008use framework "Foundation"
009use framework "AppKit"
010use scripting additions
011
012property refMe : a reference to current application
013
014#############################
015###ダイアログを前面に出す
016set strName to (name of current application) as text
017if strName is "osascript" then
018  tell application "Finder" to activate
019else
020  tell current application to activate
021end if
022############
023set appFileManager to refMe's NSFileManager's defaultManager()
024set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
025set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
026set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
027############
028set strMes to "フォルダを選んでください" as text
029set strPrompt to "フォルダを選択してください" as text
030try
031  set aliasDirPath to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation without multiple selections allowed, invisibles and showing package contents) as alias
032on error
033  log "エラーしました"
034  return "エラーしました"
035end try
036############
037#パス
038set strDirPath to (POSIX path of aliasDirPath) as text
039set ocidDirPathStr to refMe's NSString's stringWithString:(strDirPath)
040set ocidDirPath to ocidDirPathStr's stringByStandardizingPath()
041set ocidDirPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidDirPath) isDirectory:true)
042############
043#コンテンツの収集
044#プロパティ
045set ocidPropertiesArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
046ocidPropertiesArray's addObject:(refMe's NSURLIsDirectoryKey)
047ocidPropertiesArray's addObject:(refMe's NSURLNameKey)
048ocidPropertiesArray's addObject:(refMe's NSURLPathKey)
049#オプション
050set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
051#収集
052set ocidEmuDict to appFileManager's enumeratorAtURL:(ocidDirPathURL) includingPropertiesForKeys:(ocidPropertiesArray) options:(ocidOption) errorHandler:(reference)
053
054#出力用の空の可変リスト
055set ocidDirPathURLAllArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
056##allObjectsでループする方法
057set ocidEmuFileURLArray to ocidEmuDict's allObjects()
058repeat with itemURL in ocidEmuFileURLArray
059  #判定して(このケースはディレクトリなら)
060  set listResponse to (itemURL's getResourceValue:(reference) forKey:(refMe's NSURLIsDirectoryKey) |error| :(reference))
061  # listResponseは{boolean,VALUE,NSERROR}のリスト形式
062  if (item 1 of listResponse) is (true) then
063    set boolIsDir to (item 2 of listResponse) as boolean
064    if boolIsDir is true then
065      #出力用のリストに追加していく
066      (ocidDirPathURLAllArray's addObject:(ocidEnuURL))
067    end if
068  else if (item 1 of listResponse) is (false) then
069    log (item 3 of listResponse)'s code() as text
070    log (item 3 of listResponse)'s localizedDescription() as text
071  end if
072end repeat
073
074log ocidDirPathURLAllArray as list
075
076return
AppleScriptで生成しました

|

その他のカテゴリー

Acrobat Acrobat Annotation Acrobat BookMark Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Open Acrobat Plugin Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat Sequ Acrobat Sign Acrobat Stamps Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe RemoteUpdateManager Apple AppleScript AppleScript Accessibility AppleScript AppKit AppleScript Applications AppleScript AppStore AppleScript Archive AppleScript Attributes AppleScript Audio AppleScript Automator AppleScript AVAsset AppleScript AVconvert AppleScript AVFoundation AppleScript AVURLAsset AppleScript BackUp AppleScript Barcode AppleScript Bash AppleScript Basic AppleScript Basic Path AppleScript Bluetooth AppleScript BOX AppleScript Browser AppleScript Calendar AppleScript CD/DVD AppleScript Choose AppleScript Chrome AppleScript CIImage AppleScript CloudStorage AppleScript Color AppleScript com.apple.LaunchServices.OpenWith AppleScript Console AppleScript Contacts AppleScript CotEditor AppleScript CURL AppleScript current application AppleScript Date&Time AppleScript delimiters AppleScript Desktop AppleScript Device AppleScript Disk AppleScript do shell script AppleScript Dock AppleScript DropBox AppleScript eMail AppleScript Encode Decode AppleScript Error AppleScript EXIFData AppleScript ffmpeg AppleScript File AppleScript Finder AppleScript Firefox AppleScript Folder AppleScript Fonts AppleScript GIF AppleScript Guide AppleScript HTML AppleScript Icon AppleScript Illustrator AppleScript Image Events AppleScript Image2PDF AppleScript ImageOptim Applescript iWork AppleScript Javascript AppleScript Jedit AppleScript Json AppleScript Label AppleScript List AppleScript locationd AppleScript LRC AppleScript LSSharedFileList AppleScript m3u8 AppleScript Mail AppleScript MakePDF AppleScript Map AppleScript Math AppleScript Microsoft AppleScript Microsoft Edge AppleScript Microsoft Excel AppleScript Mobileconfig AppleScript Mouse AppleScript Movie AppleScript Music AppleScript NetWork AppleScript Notes AppleScript NSArray AppleScript NSBitmapImageRep AppleScript NSBundle AppleScript NSCFBoolean AppleScript NSCharacterSet AppleScript NSColor AppleScript NSColorList AppleScript NSData AppleScript NSDictionary AppleScript NSError AppleScript NSEvent AppleScript NSFileAttributes AppleScript NSFileManager AppleScript NSFileManager enumeratorAtURL AppleScript NSFont AppleScript NSFontManager AppleScript NSImage AppleScript NSIndex AppleScript NSKeyedArchiver AppleScript NSKeyedUnarchiver AppleScript NSLocale AppleScript NSMutableArray AppleScript NSMutableDictionary AppleScript NSMutableString AppleScript NSNotFound AppleScript NSNumber AppleScript NSOpenPanel AppleScript NSPasteboard AppleScript NSPDFImageRep AppleScript NSpoint AppleScript NSPredicate AppleScript NSRange AppleScript NSRegularExpression AppleScript NSRunningApplication AppleScript NSScreen AppleScript NSSize AppleScript NSString AppleScript NSStringCompareOptions AppleScript NSTask AppleScript NSTimeZone AppleScript NSURL AppleScript NSURL File AppleScript NSURLBookmark AppleScript NSURLComponents AppleScript NSURLResourceKey AppleScript NSUserDefaults AppleScript NSUUID AppleScript NSView AppleScript NSWorkspace AppleScript Numbers AppleScript OAuth AppleScript ObjC AppleScript OneDrive AppleScript Osax AppleScript PDF AppleScript PDFAnnotationWidget AppleScript PDFContext AppleScript PDFDisplayBox AppleScript PDFDocumentPermissions AppleScript PDFKit AppleScript PDFnUP AppleScript PDFOutline AppleScript Photos AppleScript Photoshop AppleScript PostScript AppleScript prefPane AppleScript Preview AppleScript Python AppleScript QR AppleScript QR Decode AppleScript QuickLook AppleScript QuickTime AppleScript record AppleScript Regular Expression AppleScript Reminders AppleScript ReName AppleScript Repeat AppleScript RTF AppleScript Safari AppleScript SaveFile AppleScript ScreenCapture AppleScript ScreenSaver AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript Sort AppleScript Sound AppleScript Spotlight AppleScript SRT AppleScript StandardAdditions AppleScript stringByApplyingTransform AppleScript System Events AppleScript System Events Plist AppleScript System Settings AppleScript TemporaryItems AppleScript Terminal AppleScript Text AppleScript Text CSV AppleScript Text TSV AppleScript TextEdit AppleScript Translate AppleScript Trash AppleScript Twitter AppleScript UI AppleScript Unit Conversion AppleScript UTType AppleScript valueForKeyPath AppleScript Video AppleScript VisionKit AppleScript Visual Studio Code AppleScript webarchive AppleScript webp AppleScript Wifi AppleScript XML AppleScript XML EPUB AppleScript XML OPML AppleScript XML Plist AppleScript XML RSS AppleScript XML savedSearch AppleScript XML SVG AppleScript XML TTML AppleScript XML webloc AppleScript XMP AppleScript YouTube AppleScript Zero Suppress Applications CityCode Design github iPhone List Logs lsappinfo Memo Music perl PlistBuddy pluginkit postalcode ReadMe SF Symbols character id SF Symbols Entity sips Skype Slack sqlite TCC Tools Typography Video Wacom zoom