AppleScriptで変数の値をテキストファイルとして書き出したかったんですが、その時タイムスタンプも付けたかった。
ので、AppleScriptからJavaScriptを実行してタイムスタンプを取得し、シェルコマンドを叩いてテキストファイルを吐き出す、というAppleScriptの「みんないいとこ取り」みたいなものを書きました。
こういうことができるようになってくると、AppleScript面白いなーって思います。
set hoge to "ここに書き出したい値を入れる" set fPath to "~/desktop/hoge" & getTimeStamp() & ".txt" --書き出し先ファイルパス do shell script "echo " & quoted form of hoge & " > " & fPath on getTimeStamp() set jsString to " var now = new Date(); var YEA = now.getFullYear(); var MON = ('0' + (now.getMonth()+1)).slice(-2); var DAY = ('0' + now.getDate()).slice(-2); var HOR = ('0' + now.getHours()).slice(-2); var MIN = ('0' + now.getMinutes()).slice(-2); var SEC = ('0' + now.getSeconds()).slice(-2); YEA+MON+DAY+HOR+MIN+SEC; " set jsRes to run script jsString in "JavaScript" return jsRes end getTimeStamp
調べるとAppleScriptでテキストファイルを書き出す正攻法が割と面倒臭そうだったので、シェルコマンドで実装しました。
タイムスタンプのJavaScriptについては割と定型句? なので特に解説いたしません。書き捨てた感じなのであまりキレイじゃないのはご了承ください^^;;
【追記 6/24 23:50】
こうちゃん氏からシェルコマンドでもできると教えてもらいました。
とりあえず問題解決できれば方法はなんでもいいですが、手札は多いほうがいつか役に立つので!ここの記事 https://t.co/lkXZWmNjrw の set folName to (do shell script "date '+%Y-%m-%d %H-%M-%S'") がその処理ね
— こうちゃん黒猫まみれ (@macneko_ayu) June 24, 2019
なるほど、これはいい。
do shell script "date +%Y%m%d%H%M%S" -->"20190624235141"
dateコマンドの引数はこちらにまとまってました。
得られる結果が同じでも、それを実現するための手段が選べるというのは後々プラスになるので、こういうツッコミ大歓迎です。多謝!
【追記ここまで】
AppleScriptでJavaScriptが実行できるようになったのはJavaScript for Automation*1がOSに搭載された10.10(Yosemite)からみたいですね。
最近仕事でAppleScriptを書かされる書かせてもらう機会が増えてきてて、これもその一部です。
もう少し自由にかけるようになったら楽しいだろうな、ってことで今日はここまで。
そうそう、今週末にもくもく会やりますので、ご都合つく方は途中からでも途中まででもぜひどうぞ。
記事執筆時点で欠員6名となっています(泣)
よろしくお願いします〜!
*1:通称「JXA」