คุณเปิดเนื้อหาของโฟลเดอร์ด้วย AppleScript ได้อย่างไร


2

ฉันกำลังใช้คำสั่งเชลล์ UNIX ในไฟล์สคริปต์ของฉัน:

do shell script "open ~/Dropbox/Media/VisionBoard/*"

มีวิธีอื่นที่จะทำหรือไม่และถ้าเป็นเช่นนั้นจะดีกว่าหรือต่างออกไป ฉันยังใหม่กับการเขียนโปรแกรมดังนั้นโปรดเป็นคนอ่อนโยน

คำตอบ:


4
tell application "Finder"
    set myFolder to ((home as text) & "Dropbox:Media:VisionBoard") as alias
    set myFiles to (every item of myFolder) as alias list
    open myFiles
end tell

แทนที่จะเป็น "ทุกรายการ" คุณสามารถพูดว่า "ทุกไฟล์" หรือ "ทุกโฟลเดอร์"


ความสำคัญของ "เป็นนามแฝง" คืออะไรและทำไมเราไม่สามารถพูดได้ open every item of ((home as text) & "Dropbox:Media:VisionBoard")?
NReilingh

ฉันไม่ใช่กูรูของ AppleScript แค่เป็นนักเรียน อาจมีหลายวิธีที่จะทำ จากคู่มือภาษา AppleScript ของ Apple:“ วัตถุนามแฝงเป็นการอ้างอิงแบบไดนามิกไปยังวัตถุระบบไฟล์ที่มีอยู่ [... ] ต่อไปนี้เป็นการใช้งานที่แนะนำสำหรับประเภทเหล่านี้: * ใช้วัตถุนามแฝงเพื่ออ้างถึงวัตถุระบบไฟล์ที่มีอยู่ * ใช้วัตถุไฟล์เพื่ออ้างถึงไฟล์ที่ยังไม่มีอยู่” developer.apple.com/mac/library/documentation/AppleScript/...
ischeriad

3
@NReilingh โดยค่าเริ่มต้น Applescript จะถือว่าคำที่วงเล็บเป็น a เชือก . ทุกๆ คำหลักระบุทุกวัตถุในภาชนะ สตริงมีอักขระ ถ้าคุณลองและเปิดทุก ๆ ชิ้น จากสตริง AppleScript จะส่งข้อผิดพลาดเนื่องจากไม่สามารถแปลงอักขระเป็นประเภทได้ ชิ้น . รายการใน Finder คือไฟล์โฟลเดอร์ ฯลฯ ดังนั้นคุณจึงบังคับสตริงพา ธ ของไฟล์ให้กับ นามแฝง ซึ่งเป็นการอ้างอิงถึงไฟล์โฟลเดอร์หรือโวลุ่มที่มีอยู่ในระบบไฟล์ ตัวค้นหาสามารถใช้นามแฝงนั้นเป็นคอนเทนเนอร์ของระบบไฟล์ รายการ .
ghoppe

ขอบคุณสำหรับการสนทนา มันให้ข้อมูลเชิงลึกที่ยอดเยี่ยมเกี่ยวกับวิธีการทำงานของ AppleScript ข้อมูลอาจจะไม่มีการใช้งานที่จับต้องได้ แต่ทุกคนสามารถยืนยันความสงสัยของฉันได้ว่าการใช้ AppleScript อย่างแท้จริงนั้นมีประสิทธิภาพมากกว่าการใช้เพื่อดำเนินการกับเชลล์สคริปต์
Orion751
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.