多重階層のフォルダ作成したかっただけなのに [AppleScript辞書はつくれるか?]
先日のプログラムコードの中での、新規フォルダを作る部分ですが
|
set cd to "$HOME/Library/Developer" try do shell script ("cd " & cd & " ; ls 'Xcode' ;") on error do shell script ("cd " & cd & " ; mkdir -m +w -p Xcode ;") with administrator privileges end try set cd to cd & "/Xcode" repeat with obj in {"Templates", "MacOS", "UserTemplates"} try do shell script ("cd " & cd & " ; ls " & obj & " ;") on error do shell script ("cd " & cd & " ; mkdir -m +w -p " & obj & " ;") end try set cd to cd & "/" & obj end repeat |
と、書いたのですが
|
do shell script ("mkdir -m +w -p ~/Library/Developer/Templates/MacOS/UserTemplates ;") ¬ with administrator privileges |
の1行で済むんだと気づいた時の悲しさ...。
フォルダを何階層も作る場合には、その度に繰り返して作らなければいけないと勘違いしてました。
mkdir -m +w -p の -pというオプションは2階層までしか作れないと勘違いして、3階層作るかもしれないと
思っていましたら、ちゃんと足りない階層は自動で全部補ってくれるということに改めて気づきましたね。
ためしに、
|
do shell script ("mkdir -m +w -p ~/Downloads/test1/test2/test3/test4/test5 ;") |
とやると、
ちゃんとできてる。
しかし、なぜAppleScriptにある"make new folder"を使わず、shellスクリプトを使用したかというと、
パーミッション設定を一度にできるので、手っ取り早かったからですね。
『-m +w』これを加えるだけで書き込み可能に設定できるから便利。
コメント 0