如何只启动一次 iTerm2 配置文件(通过 AppleScript)

How to launch an iTerm2 profile only once (via AppleScript)

我想创建一个只启动一次 iTerm2 配置文件的 Apple 脚本。如果此配置文件的会话已经 运行,则应关注相应的 window,否则应启动新会话。

到目前为止,我对实施的想法是

  1. 遍历所有 windows 个 iTerm2 并检查它们的名称
  2. 如果名称与配置文件名称相匹配,请关注 window
  3. 如果 none 个名称与配置文件名称匹配,则使用此配置文件启动新会话

但是,我还没有设法遍历 windows 并根据预定义的字符串检查它们的名称。

经过多次试错,终于弄明白了。下面的脚本将配置文件的名称作为参数并执行我在问题中描述的操作。

on run argv
    set isopen to false
    set targetName to (item 1 of argv)

    tell application "iTerm2"
        repeat with w in windows
            set wn to name of w
            if wn = targetName then
                set isopen to true

                tell application "System Events"
                    perform action "AXRaise" of window (index of w) of process "iTerm2"
                end tell
                activate

                exit repeat
            end if
        end repeat

        if not isopen then
            create window with profile targetName
        end if
    end tell
end run