Search code examples
macosapplescriptosx-elcapitan

AppleScript for gathering all windows error: Expected end of line but found unknown token


I'm a complete noob when it comes to AppleScript and have a problem with one mac laptop when disconnecting external monitors. After disconnecting an external monitor, open documents, like word and excel files, are moved off the screen and can't be dragged back into view.

OS X El Capitan version 10.11.6 (15G1510)

I found an AppleScript that should gather all open windows and bring them into view on the monitor, but I get an error every time.

Syntax Error: Expected end of line but found unknown token.

Here is the script:

    #!/usr/bin/osascript

tell application "Finder"

    -- get desktop dimensions dw = desktop width; dh = desktop height
    set db to bounds of window of desktop
    set {dw, dh} to {item 3 of db, item 4 of db}
end tell

tell application "System Events"
    repeat with proc in application processes
        tell proc
            repeat with win in windows
                -- get window dimensions (w = width; h = height)
                set {w, h} to size of win

                -- get window postion (l = left of window; t = top of window)
                set {l, t} to position of win

                -- nh = new window height; nw = new window width
                set {nh, nw} to {h, w}

                -- window width is bigger than desktop size,
                -- so set new window width to match the desktop
                if (w > dw) then ¬
                    set nw to dw

                -- window height is bigger than the desktop size (minus menu bar),
                -- so set new window height to be desktop height - 22 pixels
                if (h > dh - 22) then ¬
                    set nh to dh - 22

                -- r = right coordinate of window; b = bottom coordinate of window
                set {r, b} to {l + nw, t + nh}

                -- nl = new left coordinate; nt = new top coordinate
                set {nl, nt} to {l, t}

                -- left coordinate is off screen, so set new left coordinate
                -- to be 0 (at the left edge of the desktop)
                if (l < 0) then ¬
                    set nl to 0

                -- top coordinate is above bottom of menu bar (22 pixels tall),
                -- so set new top coordinate to be 22
                if (t < 22) then ¬
                    set nt to 22

                -- right coordinate extends beyond desktop width,
                -- so set new left coordinate to be desktop width - window width
                if (r > dw) then ¬
                    set nl to dw - nw

                -- bottom coordinate extends beyond desktop height,
                -- so set new top coordinate to be desktop height - window height
                if (b > dh) then ¬
                    set nt to dh - nh

                -- if we have calculated a new top or left coordinate, reposition window
                if (l â‰"  nl or t "â‰"  nt) then ¬
                    set position of win to {nl, nt}

                -- if we have calculated a new height or width, resize window
                if (h "â‰"  nh or w "â‰"  nw) then ¬
                    set size of win to {nw, nh}
            end repeat
        end tell
    end repeat
end tell

Any help or advice would be greatly appreciated.


Solution

  • It's an text encoding issue.

    • Replace ¬ with ¬

    There's another mistake but I'm not sure what it represents I guess it's so

    • Replace "â‰" with (⌥=)