Cách sử dụng AppleScript để thay đổi địa chỉ IP trong văn bản sao chép


-1

Về cơ bản tôi cần tìm kiếm trong nội dung clipboard cho một địa chỉ IP và thay thế nó bằng một địa chỉ trong một mạng con hoàn toàn khác: (10.10.8.24 đến 192.168.8.24 làm ví dụ). Tôi đã thử sử dụng mẫu tìm và thay thế trong Automator nhưng đơn giản là nó không hoạt động với văn bản sao chép. Tôi cũng là một người không biết cú pháp AppleScript.


2
Bạn nói " Tôi cần tìm kiếm 10.10.8.24 trong nội dung của bảng tạm và thay đổi thành 192.168.10.11 làm ví dụ. ", Vì vậy bạn có thể chỉnh sửa câu hỏi của mình để thêm chi tiết không, vì nói " như ví dụ " làm cho điều này hơi rộng và thiếu trong chi tiết thực sự. Đây có phải là những Địa chỉ IP thay thế duy nhất mà bạn đang cố gắng thực hiện hay không? Làm thế nào và khi nào thông tin được đặt vào bảng tạm, có khả năng thay thế có thể được thực hiện trước khi nó vào bảng tạm không? Nội dung Clipboard được định dạng hoặc văn bản thuần túy? Vân vân.!
dùng3439894

Đã đối phó với một đường dẫn SMB đầy đủ ra khỏi Finder và sau đó dán nó vào trạng thái chậm chạp. Lý tưởng nhất là tôi có một dịch vụ khác hoạt động nhờ một vài người dùng tại bài đăng khác của tôi: apple.stackexchange.com/questions/281156/iêu ~ nhưng sẽ rất có lợi nếu tôi có thể kết hợp cả hai tập lệnh này thành một. Thay đổi nội dung trong bảng tạm từ smb: //10.10.8.24/folder sang thư mục \\ 192.168.10.24 \ và sau đó lệnh dán ol 'sẽ thả kết quả bất cứ nơi nào bạn muốn.
charmndr

Bạn đã không giải quyết tất cả những gì tôi hỏi trong bình luận đầu tiên của tôi cho câu hỏi của bạn! Là 10.10.8.24để 192.168.10.11Địa chỉ thay thế IP là người duy nhất bạn cần phải thực hiện hoặc đang có khác IP Address bạn cần phải thay thế. Một lần nữa tôi cầu xin bạn chỉnh sửa câu hỏi của bạn thêm các chi tiết thích hợp!
dùng3439894

Nếu bạn muốn làm điều này kết hợp với câu hỏi khác, ( apple.stackexchange.com/questions/281156 ), tại sao bạn không thể thay thế trong ví dụ đã được trình bày!? Người on searchReplace(theText, SearchString, ReplaceString) xử lý hoàn toàn có khả năng thực hiện thay thế! Sau khi set convertedText to searchReplace(selectedText, "smb://", "\\\\")dòng đang sử dụng, ví dụ như, set convertedText to searchReplace(convertedText, "10.10.8.24", "192.168.10.11"). Bạn có thể thêm bao nhiêu lần cho nhiều cặp Địa chỉ IP bạn cần thay thế.
user3439894

Ok, tôi bắt đầu tập trung vào AppleScript. Nhận được phiếu bầu nhưng oh tốt. Tất cả bắt đầu đến với nhau. Cảm ơn sự giúp đỡ nâng cao @ user3439894 !!
charmndr

Câu trả lời:


1

Bạn có thể sử dụng lệnh shell này để kiểm tra nội dung clipboard và thay thế chúng:

[[ $(pbpaste) == "10.10.8.24" ]] && printf "192.168.10.11" | pbcopy

Về cơ bản, điều này kiểm tra xem bảng tạm hiện tại (mà đầu ra pbpaste) có bằng chuỗi đầu tiên không. Nếu có, nó chuyển đầu ra của lệnh printf sang pbcopy, ghi vào bảng tạm. Bạn có thể thêm phần này vào AppleScript và lặp lại với:

repeat
    do shell script "[[ $(pbpaste) == \"10.10.8.24\" ]] && printf \"192.168.10.11\" | pbcopy; exit 0"
    delay 1
end repeat

(Bạn phải kiểm tra lại một chút với \ và; exit 0 để nó chạy trong AppleScript, nhưng điều này sẽ kiểm tra từng giây và thay thế bảng tạm)


Phần đầu tiên của câu trả lời của bạn giả định rằng bảng tạm chỉ chứa Địa chỉ IP, có thể hoặc không thể xảy ra vì OP chắc chắn không rõ ràng từ OP. Ngoài ra, những gì với vòng lặp lặp lại vô tận kích hoạt mỗi giây? Hoàn toàn không có bất cứ điều gì trong OP đang tìm kiếm một vòng lặp vô tận và ngay cả khi có, làm thế nào bạn sẽ thoát ra khỏi vòng lặp vô tận!? Không bao giờ gửi mã gây ra một vòng lặp vô tận mà không cung cấp một cách lập trình để thoát ra khỏi vòng lặp vô tận!
dùng3439894

Vâng, xin lỗi và đến bữa tiệc muộn. Tôi nên làm rõ rằng đây sẽ là lý tưởng như một mục menu Dịch vụ. Điều đó có dễ thực hiện không? Tôi sẽ thấy những gì tôi có thể tìm thấy với những gì Leo nói ở trên nhưng điều đó làm tôi bối rối về một vòng lặp vô tận LOL.
charmndr
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.