Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

アウトプットするとインプットもある?

Posted on 4月 5, 2021 by Takaaki Naganoya

いまからはじめるプログラミング②を書いていていろいろ新情報を見つけてしまいました。

すでにご存知の方もいるかもしれないので、「この俺がぁぁぁぁ、世界でぇぇぇぇ、一番に見つけたァァァァァァ!!!」と主張するわけではありません。「そういえばそうだよね」ぐらいの印象のものです。

長年deprecatedだと表示されてきたけど、そろそろそんな気がするinfo forコマンド

誰もがファイル情報の確認時に雑に使っているStandardAdditions.osax中の「info for」コマンド。長年「deprecated」扱いになっていました。

そんなにdeprecated感はなかったのですが、macOS 11上で使ってみるとその遅さにめまいがしました。

System Eventsでfileのpropertyを取得したほうがはるかに高速で、さすがにもうinfo forを用例で引き合いに出すのは無理があるなと感じました(②巻のリリース直前に気づいて書き直した次第です)。

ファイル処理は完全にCocoa系の機能を使ったほうが速くて強力なので、最近はまじめに深掘りしていなかったのですが、入門者向け本を書いてみて気になりました。入門者向け本にCocoaのコードはさすがに書けません、、、、

as alias listはないけれど……

Finderからまとめてfileを取得する際に、「as alias list」という用語が使えます。通常はfileなりdocumentなりのオブジェクトをlistで返してくるFinderですが、aliasで結果がほしい(ファイルパス情報だけほしい)というケースが多々あります。

それに応えるかたちで「as alias list」が、たしかMac OS X 10.4あたりで新設されました(selectionからファイルをとってくる処理が、えっらく簡単になった記憶があります)。

その後、Mac OS X 10.6あたりで(?)System Eventsにファイル関連のSuitesが新設され、「あー、こりゃFinderのないOS環境、ワンチャンくるかも?」と怯えていたのですが、さすがにFinderを廃止すると反発が大きいという判断をしたのでしょうか、「FinderレスMac OS X環境」という世界観はやってきませんでした(iOSあたりはそういう感じですけれども)。

で、System Eventsにファイル関連のSuitesができても「これ本気で使わせたり移行させたりするつもりがあるんか?」という雰囲気で、Finder上で行っていたファイル処理をそのまま移し替えられる様子ではなく、速度面でも腰が抜けるほど速いわけでもなく、Appleのエンジニアリングチームが何を考えているのか意図を測りかねていました。

指定フォルダ内のfile一覧をaliasで取得しようとして、

set aFol to choose folder
tell application "Finder"
	set aRes to every file of aFol
end tell

という処理を、

set aFol to choose folder
tell application "System Events"
	set aRes to every file of aFol
end tell

と、書き換えて、ふとaliasで欲しいと思って、

set aFol to choose folder
tell application "System Events"
	set aRes to every file of aFol as alias list
end tell

などと書いてみてもエラーに(知ってたけど)。そこで、冗談半分に、

set aFol to choose folder
tell application "System Events"
	set aRes to every alias of aFol
end tell

と、書いてみたら………期待どおりの動作に。aliasのlistで結果が返ってきます。

log on/log offってあったよね? ねえ、あったって言って

ログ(履歴)出力用のlogコマンド、そのログ出力を許可/禁止するlog on/log offコマンドがClassic Mac OSの時代には存在していま……

魔が差して、Classic Mac OSエミュレータ「SheepShaver」を起動してClassic Mac OS 8.6上で確認してみたら……

あっれえええええ???
log on/log offコマンドが存在していないよ?

現行のmacOSで確認されている(でも、AppleScript Language Guideに書かれていない)「start log」「stop log」を書いてみたら……通りますね。

当時流通していた何かのOSAXで提供されていたコマンドだったのか、ちょっとショックです。

駄目押しで、1999年に作成された「AppleScript Language Guide」で「logコマンド」まわりを確認してみたら「start log」「stop log」がある!!!

自分の「薄い資料集」を書き換える必要がありますね。
まー、気づいたのでヨシ!(よくない)

われながら、よくもまあこれだけド派手に間違ったもので。修正方法もいろいろ考えなくてはなりませんね。

なんといいますか、現在では現役ではないプラットフォーム(Classic MacOS)に関する言及の部分なので、しれっと「そんなことはなかったよ」という顔をして修正するのもアリなんですが、個人的にショックです(FileMaker選手権で落ちたときよりは大きくないですが)。

しばし放置しつつ、様子を見てみましょう、、、、
→ 相談したら、「誰も気にしてないので直せばいい」とのこと。直しておきました。すでに購入された方は再度購入ページからダウンロードしてください。

More from my site

  • AS関連データの取り扱いを容易にする(はずの)privateDataTypeLibAS関連データの取り扱いを容易にする(はずの)privateDataTypeLib
  • Bundle IDで指定したアプリケーションのSDEFからコマンドを抽出テスト(指定コマンドのコマンド属性取り出し)Bundle IDで指定したアプリケーションのSDEFからコマンドを抽出テスト(指定コマンドのコマンド属性取り出し)
  • 新発売:AppleScript基礎テクニック集(23)サブルーチン、ハンドラ新発売:AppleScript基礎テクニック集(23)サブルーチン、ハンドラ
  • 2005年に作ったゲーム「length」2005年に作ったゲーム「length」
  • 新発売:AppleScript基礎テクニック集(22)スクリプトメニューの使い方新発売:AppleScript基礎テクニック集(22)スクリプトメニューの使い方
  • display text view Script Library v2.2をリリースdisplay text view Script Library v2.2をリリース
(Visited 95 times, 1 visits today)
Posted in news | Tagged 10.14savvy 10.15savvy 11.0savvy | 2 Comments

2 thoughts on “<span>アウトプットするとインプットもある?</span>”

  1. 4/30/21
    7:34 PM
    2021年4月30日
    7:34 PM

    Reply

    ygk says:

    違っていたらすみません。
    1番目の記述例について、

    set aFol to choose folder
    tell application “File”
    set aRes to every file of aFol
    end tell

    となっていますが、
    tell application “Finder”
    でしょうか?

  2. 4/30/21
    7:48 PM
    2021年4月30日
    7:48 PM

    Reply

    Takaaki Naganoya says:

    ご指摘ありがとうございます。そのとおりです。修正しておきますー。

Leave a Reply to ygk Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • macOS 13, Ventura(継続更新)
  • アラートダイアログ上にWebViewで3Dコンテンツを表示(WebGL+three.js)v3
  • Xcode 14.2でAppleScript App Templateを復活させる
  • macOS 13 TTS Voice環境に変更
  • UI Browserがgithub上でソース公開され、オープンソースに
  • 2022年に書いた価値あるAppleScript
  • ChatGPTで文章のベクトル化(Embedding)
  • 新発売:AppleScriptからSiriを呼び出そう!
  • iWork 12.2がリリースされた
  • 従来と異なるmacOS 13の性格?
  • 新発売:CotEditor Scripting Book with AppleScript
  • macOS 13対応アップデート:AppleScript実践的テクニック集(1)GUI Scripting
  • macOS 13でNSNotFoundバグふたたび
  • ChatGPTでchatに対する応答文を取得
  • 新発売:iWork Scripting Book with AppleScript
  • Finderの隠し命令openVirtualLocationが発見される
  • macOS 13.1アップデートでスクリプトエディタの挙動がようやくまともに
  • あのコン過去ログビューワー(暫定版)
  • AppleScriptの数値変数で指数表示にならない最大値、最小値
  • バカスタム App選手権 入賞!

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1390) 10.14savvy (586) 10.15savvy (434) 11.0savvy (277) 12.0savvy (186) 13.0savvy (59) CotEditor (60) Finder (47) iTunes (19) Keynote (99) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (41) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (117) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (57) Pages (38) Safari (41) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKUserScriptInjectionTimeAtDocumentEnd (18) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC