2015-12-21 80 views
0

我目前正試圖讓驅動器在我連接到我的網絡時自動安裝。唯一的問題是,當我沒有連接到我的網絡時出現錯誤,而連接到網絡時沒有錯誤顯示。我將如何禁用這個?蘋果腳本其他/如果

這裏是我當前的腳本:

tell application "Finder" 
    mount volume "smb://(IP)/(Drive)" as user name "(user)" 
end tell 
+0

檢查在嘗試掛載之前網絡是否連接?可能應該檢查CORRECT網絡是否連接。 –

+0

'mount volume'是'Standard Additions'的一部分。 Finder是不需要的。 – vadian

+0

我該如何執行它,以便在它執行之前檢查它是否連接到正確的網絡。 – Erich

回答

0

這是一個簡單的處理程序來檢查網絡連接。它適用於以太網和WiFi連接。

如有必要,請調整前兩行中的值。

property primaryEthernetDevice : "en0" 
property primaryWiFiDevice : "en2" 

property myIPAddress : "192.168.1.10" 
property mySSID : "mySSID" 

set {isConnected, IPAddress, ssid} to checkConnection() 
if isConnected and ssid is mySSID then 
    mount volume "smb://(IP)/(Drive)" as user name "(user)" 
end if 

on checkConnection() 
    set wiredIP to do shell script "/sbin/ifconfig " & primaryEthernetDevice & " | /usr/bin/awk '/inet/{print $2}'" 
    if wiredIP is not "" then return {true, wiredIP, ""} 
    set wirelessIP to do shell script "/sbin/ifconfig " & primaryWiFiDevice & " | /usr/bin/awk '/inet/{print $2}'" 
    if wirelessIP is not "" then 
     set ssid to do shell script "/usr/sbin/networksetup -getairportnetwork " & primaryWiFiDevice & " | sed 's/Current Wi-Fi Network: //g'" 
     return {true, wirelessIP, ssid} 
    else 
     return {false, "", ""} 
    end if 
end checkConnection 
+0

這適用於我沒有連接的情況。但是當我連接到不同的網絡時,它將返回一個錯誤代碼-5014,並告訴我無法裝入驅動器。 – Erich

+0

你將不得不找到一種方法來區分網絡。如果它是無線的,你可以通過SSID識別它。或者如果IP地址不同,請使用它。第三種解決方案是將'mount volume'行封裝在'try-end try'塊中,以抑制錯誤。 – vadian

+0

我對AppleScript不太好,因爲這是我第一次使用它。最重要的是,它不是我的Mac,所以我試圖讓這個設置只在連接到某個網絡(我目前正在使用)時進行卷裝入。用你描述的我將如何在你給我的腳本中實現它? – Erich