« [atsutil]OSが認識キャッシュしているフォント名 フォントファミリー名のリスト(macOS12まで) | トップページ | Microsoft Edge updateちょっと直し »

[atsutil] ATSのフォントキャッシュを削除する(macOS14から)


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

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

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# ATS ATSUI はmacOS14で廃止になったので
005# キャッシュは不要
006# スクリプトメニューからの実行用
007# com.cocolog-nifty.quicktimer.icefloe
008----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
009use AppleScript version "2.8"
010use framework "Foundation"
011use framework "AppKit"
012use scripting additions
013property refMe : a reference to current application
014
015
016set appFileManager to refMe's NSFileManager's defaultManager()
017set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDocumentDirectory) inDomains:(refMe's NSUserDomainMask))
018set ocidDocumentDirPathURL to ocidURLsArray's firstObject()
019set ocidSaveDirPathURL to ocidDocumentDirPathURL's URLByAppendingPathComponent:("Apple/Fonts")
020#有無チェック
021set ocidSaveDirPath to ocidSaveDirPathURL's |path|()
022set boolDirExists to appFileManager's fileExistsAtPath:(ocidSaveDirPath) isDirectory:(true)
023if boolDirExists = true then
024  log "フォルダ有り処理継続"
025else if boolDirExists = false then
026  log "フォルダ無いので作成"
027  set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
028  # 777-->511 755-->493 700-->448 766-->502
029  ocidAttrDict's setValue:(448) forKey:(refMe's NSFilePosixPermissions)
030  set listDone to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
031  if (item 1 of listDone) is true then
032    log "createDirectoryAtURL正常処理"
033  else if (item 2 of listDone) ≠ (missing value) then
034    log (item 2 of listDone)'s code() as text
035    log (item 2 of listDone)'s localizedDescription() as text
036    return "createDirectoryAtURL エラーしました"
037  end if
038  #注意書きファイルの保存
039  set ocidNULLStr to refMe's NSString's stringWithString:("")
040  set ocidNULLFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("_このフォルダは削除して大丈夫です") isDirectory:(false)
041  set ocidOption to (refMe's NSUTF8StringEncoding)
042  set listBoolDone to ocidNULLStr's writeToURL:(ocidNULLFilePathURL) atomically:(true) encoding:(ocidOption) |error| :(reference)
043  if (item 1 of listBoolDone) is true then
044    log "writeToURL 正常処理"
045  else if (item 2 of listBoolDone) ≠ (missing value) then
046    log (item 2 of listBoolDone)'s code() as text
047    log (item 2 of listBoolDone)'s localizedDescription() as text
048    return "ファイルの生成 エラーしました"
049  end if
050end if
051##############################
052### リセット前
053##############################
054##コマンド実行
055set strCommandText to ("/usr/bin/atsutil fonts -list") as text
056set strResponse to (do shell script strCommandText) as text
057#タブだけ除去
058set ocidResponse to refMe's NSMutableString's stringWithString:(strResponse)
059set ocidSaveString to (ocidResponse's stringByReplacingOccurrencesOfString:("\t") withString:(""))
060set ocidSaveString to (ocidSaveString's stringByReplacingOccurrencesOfString:("System Fonts:") withString:("System Fonts:---------------------"))
061set ocidSaveString to (ocidSaveString's stringByReplacingOccurrencesOfString:("System Families:") withString:("System Families:---------------------"))
062#
063set ocidFontNameArray to ocidSaveString's componentsSeparatedByString:("\r")
064set numCntFont to ocidFontNameArray's |count|() as integer
065log "リセット前のフォント数:" & numCntFont
066#保存先パス
067set strDateNO to doGetDateNo("yyyyMMdd_リセット前")
068set ocidBaseFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(strDateNO) isDirectory:(false)
069set ocidSaveFilePathURL to ocidBaseFilePathURL's URLByAppendingPathExtension:("txt")
070#保存
071set ocidOption to (refMe's NSUTF8StringEncoding)
072set listBoolDone to ocidSaveString's writeToURL:(ocidSaveFilePathURL) atomically:(true) encoding:(ocidOption) |error| :(reference)
073if (item 1 of listBoolDone) is true then
074  log "writeToURL 正常処理"
075else if (item 2 of listBoolDone) ≠ (missing value) then
076  log (item 2 of listBoolDone)'s code() as text
077  log (item 2 of listBoolDone)'s localizedDescription() as text
078  return "writeToURL ファイルの生成 エラーしました"
079end if
080##開く
081set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
082set boolDone to appSharedWorkspace's openURL:(ocidSaveFilePathURL)
083if (boolDone) is true then
084  log "openURL 正常処理"
085else if (boolDone) is false then
086  set aliasSaveFilePath to (ocidSaveFilePathURL's absoluteURL()) as alias
087  tell application "Finder" to open file aliasSaveFilePath
088  return "openURL ファイルの生成 エラーしました"
089end if
090##############################
091### リセット
092##############################
093
094set strCommandText to ("/usr/bin/atsutil databases -removeUser") as text
095set strResponse to (do shell script strCommandText) as text
096
097##############################
098### リセット後
099##############################
100
101##コマンド実行
102set strCommandText to ("/usr/bin/atsutil fonts -list") as text
103set strResponse to (do shell script strCommandText) as text
104#タブだけ除去
105set ocidResponse to refMe's NSMutableString's stringWithString:(strResponse)
106set ocidSaveString to (ocidResponse's stringByReplacingOccurrencesOfString:("\t") withString:(""))
107set ocidSaveString to (ocidSaveString's stringByReplacingOccurrencesOfString:("System Fonts:") withString:("System Fonts:---------------------"))
108set ocidSaveString to (ocidSaveString's stringByReplacingOccurrencesOfString:("System Families:") withString:("System Families:---------------------"))
109#
110set ocidFontNameArray to ocidSaveString's componentsSeparatedByString:("\r")
111set numCntFont to ocidFontNameArray's |count|() as integer
112log "リセット後のフォント:" & numCntFont
113#保存先パス
114set strDateNO to doGetDateNo("yyyyMMdd_リセット後")
115set ocidBaseFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(strDateNO) isDirectory:(false)
116set ocidSaveFilePathURL to ocidBaseFilePathURL's URLByAppendingPathExtension:("txt")
117#保存
118set ocidOption to (refMe's NSUTF8StringEncoding)
119set listBoolDone to ocidSaveString's writeToURL:(ocidSaveFilePathURL) atomically:(true) encoding:(ocidOption) |error| :(reference)
120if (item 1 of listBoolDone) is true then
121  log "writeToURL 正常処理"
122else if (item 2 of listBoolDone) ≠ (missing value) then
123  log (item 2 of listBoolDone)'s code() as text
124  log (item 2 of listBoolDone)'s localizedDescription() as text
125  return "writeToURL ファイルの生成 エラーしました"
126end if
127##開く
128set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
129set boolDone to appSharedWorkspace's openURL:(ocidSaveFilePathURL)
130if (boolDone) is true then
131  log "openURL 正常処理"
132else if (boolDone) is false then
133  set aliasSaveFilePath to (ocidSaveFilePathURL's absoluteURL()) as alias
134  tell application "Finder" to open file aliasSaveFilePath
135  return "openURL ファイルの生成 エラーしました"
136end if
137
138
139##############################
140### 今の日付日間 テキスト
141##############################
142to doGetDateNo(argDateFormat)
143  ####日付情報の取得
144  set ocidDate to refMe's NSDate's |date|()
145  ###日付のフォーマットを定義
146  set ocidNSDateFormatter to refMe's NSDateFormatter's alloc()'s init()
147  ocidNSDateFormatter's setLocale:(refMe's NSLocale's localeWithLocaleIdentifier:"ja_JP_POSIX")
148  set ocidTimeZone to refMe's NSTimeZone's alloc()'s initWithName:"Asia/Tokyo"
149  ocidNSDateFormatter's setTimeZone:(ocidTimeZone)
150  ocidNSDateFormatter's setDateFormat:(argDateFormat)
151  set ocidDateAndTime to ocidNSDateFormatter's stringFromDate:ocidDate
152  set strDateAndTime to ocidDateAndTime as text
153  return strDateAndTime
154end doGetDateNo
155
AppleScriptで生成しました

|

« [atsutil]OSが認識キャッシュしているフォント名 フォントファミリー名のリスト(macOS12まで) | トップページ | Microsoft Edge updateちょっと直し »

AppleScript Fonts」カテゴリの記事