• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Name von USB-Stick mit Applescript ermitteln

s-o-007

Granny Smith
Registriert
06.09.09
Beiträge
13
Hallo Apfeltalker,

ich bin neu hier, habe aber bereits hier im Forum und bei google & co nach einer Lösung für mein Problem gesucht, aber leider nichts gefunden (oder übersehen, dann sorry).
Folgendes Problem:
Ich habe einen Benutzer mit Parent Control und eingeschränkten Finder angelegt, da nur eine Datei aus dem Dokumentenordner auf einen USB-Stick kopiert werden sollen. Alle Dateien im Dokumentenordner sind vom selben Typ. Im unten gezeigten Script wird die ausgewählte Datei als Variable übergeben und soll dann (mit eins, zwei Fragedialogen) auf den aktuellen USB-Stick kopiert werden (im Script muss man ihn noch manuell auswählen). Da aber jeder seinem USB-Stick einen anderen Namen gibt, kann ich das nicht ohne eine zusätzliche Abfrage machen. Dabei werden aber auch die interne Festplatte und ggf auch die Backupplatte mit angezeigt. Dies könnte für einige Anwender zu kompliziert und verwirrend sein und es können dadurch unnötige Fehler passieren.

Hier mal mein bisheriges Script, wie es momentan läuft:
Code:
on open myObjcList
	set myObjcName to (quoted form of POSIX path of myObjcList)
	display dialog ("Möchtest du " & myObjcName & " kopieren?" as string) buttons {"Nein", "Ja"} default button 2
	set the user_choice to the button returned of the result

	if user_choice is "Ja" then

		set Verzeichnis to ("MacBookPro HD:Volumes")
		set Inhalt to list folder Verzeichnis without invisibles
		set Ordner to choose from list Inhalt with prompt "Wie heißt der USB-Stick?"

		if Ordner is false then
			display dialog ("Kein USB-Stick ausgewählt 1")
		else
			set copyApp to "cp "
			set ZielUSB to " '/Volumes/" & Ordner & "/'"
			set copyOpt to " &> /dev/null &"
			set Ergebnis to do shell script copyApp & (quoted form of POSIX path of myObjcList) & ZielUSB & copyOpt
		end if

	end if

	display dialog ("Möchtest du eine andere Datei kopieren?" as string) buttons {"Nein", "Ja"} default button 2
	set the user_choice2 to the button returned of the result

	if user_choice2 is "Ja" then
		display dialog ("Tippe eine andere Datei zum kopieren an.") buttons {"OK"} default button 1
	end if

	if user_choice2 is "Nein" then
		tell application "Finder"
			set Verzeichnis to ("MacBookPro HD:Volumes")
			set Inhalt to list folder Verzeichnis without invisibles
			eject Inhalt
		end tell
		display dialog "Du kannst den USB-Stick jetzt abziehen" buttons {"OK"} default button 1
	end if

end run

Hier möchte ich aber die Abfrage mit "choose from list" weg bekommen, da an diesen Mac immer nur ein USB-Stick parallel angeschlossen werden kann. Der Mac ist verbaut und es wird nur ein USB-Anschluß nach aussen geführt und die Bedienung wird über ein Touchscreen realisiert.

Hat jemand von euch eine Idee, wie ich einen unbekannten USB-Stick ansprechen kann oder eine andere Idee zum kopieren?

Ach ja, eh ich es vergesse. eine Softwarelösung wie z.B. DSW benötigt doch auch den Namen des USB-Sticks? Oder hab ich da was übersehen?

Vielen Dank für eure Tipps.

MfG
s-o-007
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo s-o 007! :)

Eventuell wäre das ein Weg:
(Trage bei liste1 die Namen deiner Festplatten ein)

Code:
set liste1 to {"MacBook HD", "Backup HD", "TM"}
set liste2 to list disks
set liste3 to {}
repeat with x from 1 to count of items of liste1
    set n to item x of liste2
    if n is in liste2 and n is not in liste1 then set end of liste3 to n
end repeat
return liste3
Nach deiner Aussage müßte dann der Name des USB Sticks stehen. Steht da nichts, ist auch keiner angeschlossen und Du könntest noch ein Dialog einbauen :-D
 

s-o-007

Granny Smith
Registriert
06.09.09
Beiträge
13
Hallo Sedna,

danke, das war ein super Tipp von dir.
Ich habe aber noch eine Zeile eingefügt und die Zeile mit liste2 etwas angepasst.

Code:
set Verzeichnis to ("MacBookPro HD:Volumes")
set liste2 to list folder Verzeichnis without invisibles

Jetzt klappt es schon mal so. ich werde es morgen in meinem script einpassen und damit nochmal testen.

Vielen Dank.