« [predicateWithFormat]正規表現で判定 | トップページ | [df]CD/DVDのデバイス名を取得する »

[df]デバイス名取得(リムーバルメディア)

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

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
(*
error number -128
com.cocolog-nifty.quicktimer.icefloe
*)
#
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property refMe : a reference to current application

set appFileManager to refMe's NSFileManager's defaultManager()

set ocidFalse to (refMe's NSNumber's numberWithBool:false)
set ocidTrue to (refMe's NSNumber's numberWithBool:true)

####################################
####全マウントボリューム取得
####################################
##オプション
set ocidOption to (refMe's NSVolumeEnumerationProduceFileReferenceURLs)
##取得キー
set ocidKeysArray to {(refMe's NSURLNameKey), (refMe's NSURLPathKey), (refMe's NSURLVolumeIsEjectableKey), (refMe's NSURLVolumeIsRemovableKey), (refMe's NSURLVolumeIsInternalKey)}
##取得
set ocidDiskArray to appFileManager's mountedVolumeURLsIncludingResourceValuesForKeys:(ocidKeysArray) options:(ocidOption)
##ボリュームの数だけ繰返し
repeat with itemDiskArrayURL in ocidDiskArray
  ##リソースキーを取得
  set listResDict to (itemDiskArrayURL's resourceValuesForKeys:ocidKeysArray |error|:(reference))
  ##取り出し
  set ocidResourceValuesDict to item 1 of listResDict
  ##内臓判定
  set boolIsInternal to (ocidResourceValuesDict's objectForKey:(refMe's NSURLVolumeIsInternalKey))
  ###外付けを取得する
  if boolIsInternal is (ocidFalse) then
    set ocidInternalName to (ocidResourceValuesDict's objectForKey:(refMe's NSURLNameKey))
    log ocidInternalName as text
    ##リムーバブル判定 -->CD/DVDメディア か USBメモリ
    set boolIsRemovable to (ocidResourceValuesDict's objectForKey:(refMe's NSURLVolumeIsRemovableKey))
    if boolIsRemovable is (ocidTrue) then
set ocidRemovableName to (ocidResourceValuesDict's objectForKey:(refMe's NSURLNameKey))
log ocidRemovableName as text
    end if
  end if
end repeat


####################################
####デバイス名取得
####################################
##コマンド整形
set strCommandText to ("/bin/df -k") as text
##コマンド実行
set strDfResponse to (do shell script strCommandText) as text
##Stringsに
set ocdiDfResponse to refMe's NSString's stringWithString:(strDfResponse)
##改行指定
set ocidCharacterSet to refMe's NSCharacterSet's newlineCharacterSet()
##改行でリスト
set ocidStringArray to ocdiDfResponse's componentsSeparatedByCharactersInSet:(ocidCharacterSet)
##リストの数だけ繰返し
repeat with itemStringArray in ocidStringArray
  set strItemStringArray to itemStringArray as text
  if strItemStringArray contains (ocidRemovableName as text) then
    log strItemStringArray
    ##スペース指定
    set ocidCharacterSet to refMe's NSCharacterSet's whitespaceCharacterSet()
    set ocidDevArray to (itemStringArray's componentsSeparatedByCharactersInSet:(ocidCharacterSet))
    --->指定ドライブの
    log (ocidDevArray's objectAtIndex:0) as text
  end if
end repeat







|

« [predicateWithFormat]正規表現で判定 | トップページ | [df]CD/DVDのデバイス名を取得する »

AppleScript Disk」カテゴリの記事

AppleScript CD/DVD」カテゴリの記事