1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Name von USB-Stick mit Applescript ermitteln

Dieses Thema im Forum "AppleScript" wurde erstellt von s-o-007, 06.09.09.

  1. s-o-007

    s-o-007 Granny Smith

    Dabei seit:
    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
     
  2. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    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
     
  3. s-o-007

    s-o-007 Granny Smith

    Dabei seit:
    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.
     

Diese Seite empfehlen