di chuyển một tập tin, thay thế hiện tại (nếu có), lý tưởng bằng cách đặt hiện tại vào thùng rác


0

Tôi đang cố gắng tìm cách tự động (không có sự can thiệp của người dùng) di chuyển tệp từ A sang B, thay thế B nếu nó tồn tại, lý tưởng nhất là đưa bản sao B hiện có vào thư mục Thùng rác thích hợp.

Điều này sẽ được thực hiện trong một kịch bản shell. Cuối cùng, A và B sẽ được $VARIABLESnhư thế này:

/usr/bin/osascript <<EOT
tell application "Finder"
    move POSIX file "$SOURCE" to POSIX file $DEST" with replacing
end tell
EOT

nhưng tôi thậm chí không thể làm cho nó hoạt động mà không có các biến, chẳng hạn như:

/usr/bin/osascript <<EOT
tell application "Finder"
    move POSIX file "/Users/luomat/Desktop/1.txt" to POSIX file "/Users/luomat/Desktop/2.txt" with replacing
end tell
EOT

Tôi đã lấy cú pháp đó khá nhiều trực tiếp từ Stackoverflow 14058061 nhưng tôi nhận được kết quả này:

24:132: execution error: Finder got an error: AppleEvent handler failed. (-10000)

Tôi cũng đã xem qua một bài viết MacTech có đề xuất sử dụng replacing truevì vậy tôi đã thử:

/usr/bin/osascript <<EOT
tell application "Finder"
    move POSIX file "/Users/luomat/Desktop/1.txt" to POSIX file "/Users/luomat/Desktop/2.txt" replacing true
end tell
EOT

nhưng nó vẫn nói:

24:132: execution error: Finder got an error: AppleEvent handler failed. (-10000)

Xin lưu ý rằng stackoverflow # 12708195 Tôi không cố gắng nhắc người dùng thực hiện việc này, nhưng lý tưởng nhất là nó sẽ xảy ra 'tự động' như những đứa trẻ nói.

Vì vậy, tôi đang làm gì sai và / hoặc mất tích? Việc cố gắng tìm kiếm thông tin về mã lỗi (-10000) của Google cho tôi biết rằng điều đó có nghĩa là Apple AppleScript đã thất bại, điều đó không hữu ích lắm.


Về mặt kỹ thuật, nó giống như một AppleScript hơn và đôi khi nó không phải là điều dễ làm nhất khi kết hợp nó; Bất kỳ lý do nào bạn không làm nó hoàn toàn như một kịch bản shell?
Tôi sẽ là

Nó sẽ là một phần của tập lệnh shell lớn hơn nhiều, đây chỉ là một phần nhỏ của nó.
TJ Luoma

Câu trả lời:


1

Tôi cần phải làm một số nghiên cứu thêm để có được điều này đúng. Tôi cảm thấy gần gũi với nó, nhưng applescript vẫn không thích nó. Có lẽ nó sẽ cho bạn một số ý tưởng cho đến khi tôi quay lại đây để cho nó một cảnh quay khác. Btw điều này sẽ trở nên dễ dàng hơn rất nhiều khi bạn đang sử dụng hộp thoại chọn tập tin.

Đây là nỗ lực không làm việc (chưa) của tôi. Nếu bạn không phải là tôi, hãy cố gắng hoàn thành giải pháp vào ngày mai.

# 1. get desktop folder
set desktopFolder to (((path to desktop from user domain) as string)) as alias


# 2.set source file
tell application "Finder" to ¬
set theFile to ((path to file "1.text" of folder (desktopFolder)) as string) as   alias


# 3.set destination file
tell application "Finder" to ¬
set theDestination to ((path to file "2.text" of folder (desktopFolder)) as string) as alias



# 4.make it happen
tell application "Finder" to move theFile to theDestination with replacing
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.