Mounten von NAS mit Funktion

D

der_mo

Mitglied
Thread Starter
Dabei seit
17.02.2007
Beiträge
22
Reaktionspunkte
0
Hallo zusammen,
ich habe folgendes Script:
Code:
on mounten(Verzeichnis, Pfad)
	#activate
	#display dialog "Die lokale IP Adresse lautet: " & Verzeichnis
	(list disks) contains "Verzeichnis"
	try
		mount volume "Pfad"
	end try
end mounten

on run {input, parameters}
	
	#set ipInfo to do shell script "ifconfig | grep broadcast | cut -f2 -d' '"
	set ipInfo to do shell script "ipconfig getifaddr en0"
	if the ipInfo is not false then
		copy the ipInfo to {LokaleIP}
		#display dialog "Die lokale IP Adresse lautet: " & ipInfo
		
		tell application "Finder"
			#if LokaleIP = "192.168.0.21" then
			mounten("Grp_Buero", "afp://192.168.0.202/Grp_Buero")
			mounten("Grp_Scans", "afp://192.168.0.202/Grp_Scans")
			#end if
			
			#if LokaleIP = "192.168.0.21" or LokaleIP = "192.168.0.27" or LokaleIP = "192.168.0.175" then
			mounten("Dropbox", "afp://192.168.0.111/Dropbox")
			mounten("SkyDrive", "afp://192.168.0.111/SkyDrive")
			#end if
		end tell
		
	end if
	
end run
als Fehlermeldung erhalte ich:
Fortfahren nicht möglich: mounten

Die Überprüfung der IP habe ich momentan noch deaktiviert, das ist dann Stufe 2, wenn der Rest funktioniert.

Hat jemand ne Idee, warum es nicht funktioniert?
bye,
Michael
 
Auf die schnelle würde ich sagen im Handler mounten liegt der Hund begraben. Bei Verzeichnis und Pfad müssen jeweils die Anführungszeichen weg.
 
das habe ich schon versucht gehabt.. leider ohne erfolg.
 
Wenn ich es nicht übersehen habe, übergibst Du an keiner Stelle den User und PW mit dem die Platten gemounted werden sollen.

Tobi
 
Vor die mounten() Handler-Aufrufe muss noch ein my (my mounten(...) oder mounten(...) of me), da der Aufruf in einem tell-Block steht. Sonst wird der Handler dem Finder und nicht dem Skript zugeordnet.
 
@ObiTobi: die passwörter stehen in der keychain.
@Pill: subbr, danke!
 
so, nachdem alles prima läuft noch folgendes problem:
Code:
	set ipInfo to do shell script "ipconfig getifaddr en0"
	if the ipInfo is not false then
		copy the ipInfo to {LokaleIP}
		tell application "Finder"
			if LokaleIP = "192.168.0.21" then
				my mounten("Grp_Buero", "afp://192.168.0.202/Grp_Buero")
				my mounten("Grp_Scans", "afp://192.168.0.202/Grp_Scans")
				my mounten("Grp_Verein", "afp://192.168.0.202/Grp_Verein")
				display dialog "Die lokale IP Adresse lautet: " & LokaleIP
			end if
		end tell
	end if
end run
in der Variablen LokaleIP steht 192.168.0.21 aber leider durchläuft der Arbeitsablauf die 3 Mount-Befehle nicht, sondern ignoriert die Schleife komplett.
Wo liegt mein Denkfehler?
 
Mal abgesehen davon, dass die Zeile "copy the ipInfo to {LokaleIP}" komplett unnötig ist, kopierst du da einen String (ipInfo) in eine Liste ({LokaleIP}). Bei der if-Abfrage suchst du aber wieder einen String, er findet aber natürlich nur eine Liste gibt daher false aus und überspringt den Schritt.

Also: am Besten die besagte Zeile weglassen und stattdessen überall ipInfo durch LokaleIP ersetzen oder umgekehrt.
 
@pill: du bist mein mann des tages :)
danke
 
Zurück
Oben Unten