Как открыть папку боковой панели Finder через AppleScript? - PullRequest
4 голосов
/ 25 ноября 2008

У меня есть скрипт bash, который будет запускаться на Mac через ssh. Сценарий требует, чтобы определенный сетевой диск уже был подключен. На Mac я монтирую этот диск, открывая папку «JPLemme» на этом диске в Finder. Это монтирует диск до тех пор, пока Mac не уснет ночью.

Очевидно, что Finder недоступен через ssh, поэтому я хочу создать AppleScript, который будет имитировать то, что я делаю через GUI. Я пробовал:

tell application "Finder"
activate
open "JPLemme"
end tell

Я получаю следующую ошибку:

execution error: Finder got an error: Can't get "JPLemme". (-1728)

Я предполагаю, что упускаю что-то очевидное, но Google подвел меня. Я также был бы готов предложить лучшие решения, такие как установка привода напрямую; Я избегал такого подхода, потому что я не хочу, чтобы Mac задыхался, пытаясь смонтировать диск во второй раз после того, как я уже смонтировал его неожиданным способом. (Я не очень люблю Mac или AppleScript ...)

Ответы [ 2 ]

2 голосов
/ 25 ноября 2008

Ваш сетевой том должен иметь домен, связанный с ним. Итак, «JPLemme.domain.com». Я использую следующий кусок кода, чтобы попасть на сетевой том, защищенный паролем:

    tell application "Finder"
       try
          set theServer to mount volume "smb://path/to/volume" as username "YourUserName" with password "YourPassword" 
--Please note here that this is a plain string without any built-in security. Use at your own risk.
       on error
          set VolumeCount to (get count of disks)
          repeat with x from 1 to VolumeCount
             set thisVolume to disk x
             if name of thisVolume is "JPLemme" then
                set theServer to thisVolume
                exit repeat
             end if
          end repeat
       end try
    end tell

Вы можете очистить его по мере необходимости, но в этом его суть. Удачи

1 голос
/ 26 ноября 2008

По сути, все, что действительно нужно, это следующее:

Tell Application "Finder"
   Mount Volume "smb://username:password@server/sub/directory"
End Tell

Но то, что используется, будет в значительной степени зависеть от сетевого окружения и возвращаемых ошибок.

...