OSX 'เปิดด้วย' สคริปต์ทุบตี


8

ฉันมีสคริปทุบตีซึ่งในความเป็นจริงแล้วมีหลายอย่างที่ฉันต้องการเปิดไฟล์ในตัวค้นหา OSX ด้วย

มันเป็นแนวคิดที่เรียบง่ายจริงๆ แต่ด้วยเหตุผลบางอย่างสคริปต์ทุบตีจะเป็นสีเทาในกล่องโต้ตอบ 'เปิดด้วย' ตัวค้นหา

ฉันรวบรวมว่ามีหลายวิธีในการใช้ applescript หรือบรรจุภัณฑ์เป็นแอป ... แต่ฉันไม่สามารถคิดสิ่งนี้ได้และฉันไม่ต้องการรับภาษาอื่นสำหรับงานที่ไม่สำคัญนี้ - ใครบางคนช้อนเลี้ยงฉันด้วยวิธีการทำเช่นนี้?

ขอบคุณ!

คำตอบ:


11

มันเป็นไปไม่ได้. Launch Services ทำงานร่วมกับตัวระบุแอปพลิเคชันและสคริปต์ทุบตีไม่มี

คุณต้องสร้างแอปพลิเคชั่น wrapper โดยใช้ Automator

  1. เรียกใช้ Automator
  2. เลือกแอปพลิเคชัน
  3. ค้นหาแอคชันRun Shell Scriptและเพิ่มไปทางขวา
  4. ส่งผ่านอินพุตเป็นอาร์กิวเมนต์
  5. ใส่สคริปต์ของคุณในนั้น
  6. บันทึกที่ไหนสักแห่ง

นี่คือรุ่นของฉันโดยใช้อรรถประโยชน์บรรทัดคำสั่งGrowl :

ป้อนคำอธิบายรูปภาพที่นี่

ผลลัพธ์:

ป้อนคำอธิบายรูปภาพที่นี่


คุณสามารถเห็นผลกระทบที่การเปลี่ยนแปลงนี้มีขึ้น~/Library/Preferences/com.apple.LaunchServices.plistเมื่อคุณเปลี่ยนทั้งหมด :

ป้อนคำอธิบายรูปภาพที่นี่

("ทดสอบ" เป็นชื่อที่ฉันให้กับแอปพลิเคชัน Automator ของฉัน)


ขอบคุณ ฉันลองวน แต่ลองและเปิดด้วยแอพที่สร้างขึ้นโดย Automator มันเพิ่งบอกว่าการกระทำ "Run Shell Script" พบข้อผิดพลาด ตรวจสอบคุณสมบัติของแอ็คชันและลองเรียกใช้เวิร์กโฟลว์อีกครั้ง ข้อความแจ้งข้อผิดพลาดที่มีประโยชน์น้อยที่สุดที่ฉันเคยเห็นมาสักพักหนึ่งแล้ว!
รวย

@Rich มันทำงานร่วมกับสคริปต์เริ่มต้นในการดำเนินการเรียกใช้สคริปต์เปลือก? หรือไม่ถึงตอนนั้น? คุณจำเปลี่ยนการตั้งค่ารหัสผ่านหรือไม่ คุณลองดับเบิลคลิกที่แอปพลิเคชันของคุณลากไฟล์ไปยังแอปพลิเคชันของคุณหรือเปิดเฉพาะไฟล์ที่เกี่ยวข้องหรือไม่ จะเกิดอะไรขึ้นถ้าคุณเริ่มวิธีอื่น
Daniel Beck

ขอบคุณ ไม่แน่ใจว่าคุณจะเห็นผลลัพธ์จากค่าเริ่มต้นอย่างไรเพราะมันเรียกว่า cat แต่ดูเหมือนว่าจะไม่มีข้อผิดพลาด แทนที่จะให้แอปเรียกใช้สคริปต์จากตำแหน่งที่ไม่ได้มาตรฐานฉันสร้างสคริปต์ใน / usr / local / bin แล้วค้นพบว่าถ้าฉันพยายามเรียกใช้มันบ่นว่ามีการเชื่อมโยงสัญลักษณ์หลายระดับ (1?! ) ดังนั้นฉันเพิ่งคัดลอกสคริปต์ที่นั่นแทนและตอนนี้ดูเหมือนว่าจะทำงาน ขอบคุณ!
รวย

1

ฉันทำตามคำแนะนำของ Daniel Beck ด้วยการปรับเปลี่ยนเล็กน้อยและให้สิ่งนี้ใช้ได้กับไฟล์ URL ที่ฉันต้องการเปิดใน Chrome (Firefox ก็ใช้งานได้) บน Mac

สคริปต์ที่ฉันใช้คือ:

sed 's/^URL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | tr -d '\r' | xargs open -a "Google Chrome"

ซึ่งจะแยกวิเคราะห์ URL = บรรทัดจากไฟล์ URL ทั่วไปซึ่งมีลักษณะดังนี้:

[InternetShortcut]
URL=http://www.docircuits.com/pricing
IDList=
HotKey=0
IconFile=O:\Apps\Firefox\Data\profile\shortcutCache\4t0JW4mY1qRPhiYz1fY3dw==.ico
IconIndex=0

บันทึกสคริปต์ Automator ไว้ที่ใดที่หนึ่งเช่นไดเรกทอรี ~ / Library ของคุณ ฉันเรียกว่าเหมือง OpenUrl.app

ตอนนี้ไปที่ไฟล์ url ที่ใดที่หนึ่งแล้วเปิดป๊อปอัป "รับข้อมูล" เปลี่ยนคำสั่ง Open With เป็นสคริปต์ OpenUrl.app ของคุณ ทดสอบด้วยการคลิกเพียงครั้งเดียวหรือคลิก "เปลี่ยนทั้งหมด ... " ในครั้งแรกที่ฉันคลิกที่มันทำให้เกิดข้อผิดพลาด แต่ดูเหมือนจะทำงานเป็นครั้งที่สอง

ในการพัฒนาสิ่งนี้ฉันได้รับข้อผิดพลาด "Run Shell Script" แต่นั่นเป็นเพราะข้อผิดพลาดจริงในสคริปต์ ฉันคิดว่าปัญหาสำคัญของสคริปต์ของ Daniel คือมันไม่ได้จัดการช่องว่างในชื่อไฟล์ที่คุณพยายามเปิด


-1

ใช้reattach-to-user-namespaceทั้งจากซื้อคืนbrew install reattach-to-user-namespaceหรือ สิ่งนี้ใช้ได้ในเซียร์ราฉันไม่แน่ใจเกี่ยวกับระบบปฏิบัติการอื่น

เมื่อติดตั้งแล้วให้ใช้ในสคริปต์ทุบตีเช่น:

reattach-to-user-namespace เปิด a_cool_file.png


ดูเหมือนจะไม่ตอบคำถาม OP ต้องการใช้ฟังก์ชัน "เปิดด้วย" ของ Finder's เพื่อเปิดไฟล์ด้วยสคริปต์ Bash การให้การสนับสนุนคลิปบอร์ดภายใต้ Tmux และหน้าจอไม่ช่วยเรื่องนั้นโดยเฉพาะอย่างยิ่งเนื่องจากไม่มีข้อบ่งชี้ว่า Tmux หรือหน้าจอมีส่วนเกี่ยวข้อง
8bittree
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.