L'Isola di Niente
L'Isola di Niente » macOS Tips » macOS アプリを JXA (AppleScript) で拡張

macOS アプリを JXA (AppleScript) で拡張

拡張スクリプトを有効にするには Script Editor.app の設定から
[メニューバーにスクリプトメニューを表示] にチェックを入れます。

img/showmenu.png

メニューばに表示されたアイコンをクリックするとスクリプトメニューが出る。
[スクリプトフォルダを開く] で開いたディレクトリに *.scpt か *.js を入れます。

img/scriptmenu.png

*.js の場合はシバンと実行パーミッションを忘れずに。
*.scpt なら実行パーミッションは不要です。

Finder での例

端末を使わずに選択ファイルに実行パーミッションを付ける。
#!/usr/bin/osascript

let app = Application.currentApplication();
app.includeStandardAdditions = true;
let selections = Application("Finder").selection();
selections.forEach(function(item) {
    let path = decodeURI(item.url()).slice(7);
    app.doShellScript("chmod +x " + path);
});

デジカメからコピーした画像等のファイル名を全部小文字に変更
#!/usr/bin/osascript

let selections = Application("Finder").selection();
selections.forEach(function(item) {
    // Get Property
    let s = item.name();
    // Set Property
    item.name = s.toLowerCase();
});

現在 Finder で開いているディレクトリから端末を開始
#!/usr/bin/osascript

let finders = Application("Finder").finderWindows();

let uri = finders[0].target().url();
let path = decodeURI(uri).slice(7);

let app = Application.currentApplication();
app.includeStandardAdditions = true;
app.doShellScript("open -a Terminal " + path);

Windows の「送る」のように使う(Visual Studio Code.app での例)
#!/usr/bin/osascript

let selections = Application("Finder").selection();
let fullpath = decodeURI(selections[0].url()).slice(7);

let app = Application.currentApplication();
app.includeStandardAdditions = true;
app.doShellScript("open -a Visual\\ Studio\\ Code " + fullpath);

Copyright(C) sasakima-nao All rights reserved 2002 --- 2017.