Làm cách nào để thay đổi đường dẫn AppleScript thành đường dẫn kiểu Terminal?


11

Tôi có một Dịch vụ tùy chỉnh mà tôi đã tạo trong Automater (Tôi đang dùng OS X 10.6.5). Dịch vụ thực thi một AppleScript, lần lượt thực thi một tập lệnh shell. Đây là AppleScript:

on run {input, parameters}
    -- do shell script "/usr/bin/find " & input & " -type f -name .DS_Store -delete -print"
    display alert "Path: " & input
end run

Vấn đề là, đường dẫn được Dịch vụ (trong biến input) chuyển qua trông như sau:

Macintosh HD:Users:Matthew:Documents:Programming:Apple Scripts:

Và để lệnh thực thi đúng, đường dẫn cần phải trông như sau:

Macintosh\ HD/Users/Matthew/Documents/Programming/Apple\ Scripts/

Vì vậy, có cách nào để dịch đường dẫn thứ nhất sang đường dẫn thứ hai không? Tôi đã hy vọng cho một chức năng cốt lõi xử lý này. Nhưng tôi cho rằng một số loại regex / find / thay thế / etc sẽ hoạt động? Tôi quen thuộc với HTML / CSS / Javascript / PHP, không phải với Cacao / AppleScript / C. Bất kỳ hướng hoặc đề xuất sẽ là tuyệt vời!

Câu trả lời:


8

Sử dụng quoted form of the POSIX path of input. Không có quoted form ofphần, nó sẽ không xử lý các ký tự vui nhộn (như khoảng trắng) trong tên tệp một cách chính xác. Xem kỹ thuật này của Apple .


6

Ok ... điều này dễ dàng hơn tôi đã nhận ra. Sau một số Googling, có vẻ như thứ tôi cần ở đây là POSIX path oflệnh. Điều này chuyển đổi một đường dẫn nhất định thành một đường dẫn kiểu Unix, đây là loại đường dẫn bạn sẽ thấy / sử dụng trong Terminal. Vì thế:

POSIX path of input

Cung cấp cho tôi một con đường như:

/Users/Matthew/Documents/Programming/Apple Scripts/

Nó dường như tính đến việc bạn chỉ cần một /điểm ở đầu đường dẫn, thay vì tên ổ cứng. Tuy nhiên, nó \không thoát khỏi không gian (hoặc xử lý các ký tự đặc biệt) trong đường dẫn. Vì vậy, như câu trả lời khác ở đây đề cập, bạn cần đặt đường dẫn trong dấu ngoặc kép ( "hoặc ') để các khoảng trắng (hoặc ký tự đặc biệt) được diễn giải theo nghĩa đen. Bạn thực hiện điều này bằng cách sử dụng quoted form of. Đây là:

quoted form of the POSIX path of the input
-- gives a path like: '/Users/Matthew/Documents/Programming/Apple Scripts/'

2
/đầu đường dẫn là âm lượng khởi động. Các ổ đĩa cứng khác đang hoạt động/Volumes/
Josh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.