1 votos

¡Terminal no puede conseguir todas las pestañas de todos los Windows!

Estoy intentando iterar sobre cada pestaña de cada ventana en Terminal

tell application "Terminal"
    activate
    repeat with t in tabs
    end repeat
end tell

salida

execution error: Terminal got an error: Can’t get every tab. (-1728

2voto

Mockman Puntos 16

Las pestañas son un elemento de una ventana, por lo que no puedes exigir simplemente una lista de pestañas.

Esto hará un ciclo a través de cada ventana abierta y tomará una referencia a cada pestaña en ella. Todas acabarán en una lista, pero no es probable que estén ordenadas.

tell application "Terminal"

    set xt to tabs of windows -- nested list of tabs
    set tList to {}

    repeat with win in xt -- each window
        repeat with tb in win -- each tab in above window

            set end of tList to contents of tb

        end repeat
    end repeat
end tell

tList -- flat list of tabs
--> {tab 1 of window id 3824 of application "Terminal", tab 1 of window id 3568 of application "Terminal", tab 2 of window id 3568 of application "Terminal", tab 3 of window id 3568 of application "Terminal", tab 1 of window id 3564 of application "Terminal", tab 2 of window id 3564 of application "Terminal"}

Una vez que tenga una lista plana, puede recorrerla (por ejemplo, repetir con x en tList).

1voto

joseph lake Puntos 21

Así que aparentemente Terminal.app cada pestaña es siempre su propia ventana. Pero si realmente quería iterar a través de las pestañas en lugar de Windows puede hacerlo aquí. gracias a @red_menace por la ayuda

tell application "Terminal"
    repeat with w in windows
        repeat with t in tabs of w
            set n to name of current settings of t
        end repeat
    end repeat
end tell

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X