使用applescript替换applescript中的文本

时间:2016-08-12 17:46:58

标签: applescript

我有几百个冗长的应用程序需要编辑,我需要在每个脚本的不同位置查找并替换以下代码段。

tell application "Adobe Photoshop CC 2015.5"
set myLayer to current layer of current document
if last character of mySport is "s" then
set contents of text object of myLayer to mySport & ""
else
set contents of text object of myLayer to mySport & "'s"
end if
end tell

我想用

替换它
tell application "Adobe Photoshop CC 2015.5"
set myLayer to current layer of current document
set contents of text object of myLayer to mySport & "'s"
end tell

有没有办法编写一个AppleScript来查找和替换多行?

code screen grab

第二个问题是如何处理引号中包含的撇号?

你可能会说我是艺术家而不是开发人员或脚本编写者!我试图回答一段时间但没有成功,问题现在变得很严重。

非常感谢期待得到答案。

2 个答案:

答案 0 :(得分:0)

我从Late Night Software购买了Script Debugger,它使脚本能够访问代码片段并替换它们。 Mark Alldritt在他提供的支持方面令人惊叹,该软件现在是我的“第一次使用”目的地。

答案 1 :(得分:0)

You are sure of your original script and the final script? In this case no hesitation to use xxd and sed below in hexadecimal script which you wrote you can test this script, no danger for your script. Naturally, you change your path and names at your convenience.

    set thePath to POSIX path of (choose file)

        tell application "Script Editor"
            set doc to open thePath
            save doc as "text" in POSIX file "/Users/yourname/Desktop/yourscriptold.txt"
            close thePath
        end tell


        set scp to do shell script "xxd -p -c 100000  /Users/yourname/Desktop/yourscriptold.txt " & " | sed -e 's#74656c6c206170706c69636174696f6e202241646f62652050686f746f73686f7020434320323031352e35220a736574206d794c6179657220746f2063757272656e74206c61796572206f662063757272656e7420646f63756d656e740a6966206c61737420636861726163746572206f66206d7953706f727420697320227322207468656e0a73657420636f6e74656e7473206f662074657874206f626a656374206f66206d794c6179657220746f206d7953706f727420262022220a656c73650a73657420636f6e74656e7473206f662074657874206f626a656374206f66206d794c6179657220746f206d7953706f7274202620222773220a656e642069660a656e642074656c6c#74656c6c206170706c69636174696f6e202241646f62652050686f746f73686f7020434320323031352e35220a736574206d794c6179657220746f2063757272656e74206c61796572206f662063757272656e7420646f63756d656e740a73657420636f6e74656e7473206f662074657874206f626a656374206f66206d794c6179657220746f206d7953706f7274202620222773220a656e642074656c6c#' > /Users/yourname/Desktop/yourscriptnew.txt"

        set scp to do shell script "xxd -r -p /Users/yourname/Desktop/yourscriptnew.txt >/Users/yourname/Desktop/yournewscript.txt"

            do shell script "osacompile -o " & "/Users/yourname/Desktop/temporyname.scpt" & " /Users/yourname/Desktop/yournewscript.txt"

do shell script "rm -f /Users/yourname/Desktop/yourscriptold.txt "
do shell script "rm -f /Users/yourname/Desktop/yourscriptnew.txt "
do shell script "rm -f /Users/yourname/Desktop/yournewscript.txt "