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

Datei kopieren / duplicate File

Dieses Thema im Forum "AppleScript" wurde erstellt von BerndderHeld, 02.01.10.

  1. BerndderHeld

    BerndderHeld Spätblühender Taffetapfe

    Dabei seit:
    03.09.06
    Beiträge:
    2.801
    Hi,
    Ich möchte eine Datei kopieren (von einem smb-share im Netzwerk) auf meinen lokalen Rechner.

    Code:
    tell application "Finder"
        duplicate item "/Volumes/Samsung-MightyDrive-01/bento.bentodb" 
       to "Desktop/bento.bentodb"
    end tell
    führt leider zu einer Fehlermeldung
    Irgendwie blicke ich diese Applescript Syntax nicht. Kann mir da hier jemand bitte kurz erläutern?
     
  2. salome

    salome Golden Noble

    Dabei seit:
    20.08.06
    Beiträge:
    23.757
    Möchtest du eine Datei kopieren oder in die Geheimnisse von Apple Script eindringen?
    Bei letzterem muss dir wer andere helfen.
    Aber wenn es nur ums kopieren geht und ich verstanden habe, dass du von einem Volumen auf ein anderes kopieren willst (dann musst du sicher im Script mehr angeben als nur Desktop), dann brauchst die Datei nur hinüber ziehen.
    Wenn du aber auf dem gleichen Volumen kopieren willst, dann halte ⌥ während du die Datei auf den Desktop ziehst. Dann wird sie kopiert.
    salome
     
  3. BerndderHeld

    BerndderHeld Spätblühender Taffetapfe

    Dabei seit:
    03.09.06
    Beiträge:
    2.801
    Naja wie Ich eine Datei über den Finder kopiere ist nicht das Problem. Ich habe verschiedene Sachen zum Thema Applescript mir angeschaut und das Problem ist das es für diesen Anwendungsfall verschiedene Schreibweisen gibt und Irgendwie keine Version bei mir funktioniert. Das Script soll am Ende natürlich noch mehr tun als nur die Datei zu kopieren. Das ist aber hier nicht relevant deswegen habe Ich es nicht mit eingefügt.

    Ich werde mir diese Sache heute Mittag nochmal anschauen. Vielleicht werde dann ja schlauer sein.
     
  4. salome

    salome Golden Noble

    Dabei seit:
    20.08.06
    Beiträge:
    23.757
    Wäre fein, wenn sich ein Scriptkundiger melden würde mit einem Tipp.
    Mit dem Automator funktioniert es nicht?
    salome
     
  5. dewey

    dewey Gewürzluiken

    Dabei seit:
    01.05.06
    Beiträge:
    5.732
    wieso überhaupt mit applescript und nicht einfach mit einem shellscript im terminal?

    schau dir mal "man cp" an
     
  6. BerndderHeld

    BerndderHeld Spätblühender Taffetapfe

    Dabei seit:
    03.09.06
    Beiträge:
    2.801
    ja, im Terminal kann ich das auch. Ich habe mir auch schon überlegt es alternativ über ein shellscript zu machen.

    Insgesamt soll ein Laufwerk gemountet werden, die Datei kopiert werden und dann Bento gestartet werden. Ich dachte AS wäre das ideale Mittel dafür. Der Rest funktioniert auch wunderbar, nur diese duplicate Syntax ist etwas verwirrend.
     
  7. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Ohne mich mit AS auszukennen: Muss der Zielpfad nicht ein relativer Pfad zum Benutzerordner sein, den man vorab vom System auflösen lässt?
     
  8. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    der Finder erwartet einen absoluten HFS-Pfad (file, alias oder file specification).
    BerndderHeld, diese Voraussetzung erfüllst Du nicht, denn Du gibst einen POSIX-Pfad an.

    Des Weiteren sollte der Finder für solche Dinge auch nicht genutzt werden.
    Verwende z.B.

    Code:
    do shell script "cp " & quoted form of sourceLocation & " " & quoted form of targetLocation
    Die Pfadangaben sind hier, wie bereits von Dir verwendet, POSIX.

    Viele Grüße
     
  9. BerndderHeld

    BerndderHeld Spätblühender Taffetapfe

    Dabei seit:
    03.09.06
    Beiträge:
    2.801
    Ja das mit dem do shell script habe ich bereits eingebaut. Es funktioniert auch prinzipiell. Leider gibt:
    Code:
    do shell script "echo cp -r /Volumes/Samsung-MightyDrive-01/bento.bentodb" 
                       & quoted form of "Users/bernd/Library/Application Support/Bento"
    mir kein korrekt maskiertes Leerzeichen zurück:
    Auch …
    Code:
    […]& quoted form of (POSIX path of "Users:bernd:Library:Application Support:Bento")
    liefert das gleiche.

    Ich habe also immer im Folder "Application Support" ein Problem. Für einen Tipp wäre ich sehr Dankbar.
     
  10. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    öffne das Terminal und tippe Deinen Befehl ein.
    Dann werden Dir auch die zwei Fehler in Deinem Skript klar.

    Schaue Dir mal meinen Code an, vergleiche und nutze ihn so.
    Weise vorher den zwei Variablen Deine Pfadangaben zu.

    z.B. so:
    Code:
    set sourceLocation to "Pfad/zu/A"
    set targetLocation to "Pfad/zu/B"
    
    do shell script "cp " & quoted form of sourceLocation & " " & quoted form of targetLocation
    
    Viele Grüße
     
  11. BerndderHeld

    BerndderHeld Spätblühender Taffetapfe

    Dabei seit:
    03.09.06
    Beiträge:
    2.801
    Code:
    cp -r /Volumes/Samsung-MightyDrive-01/bento.bentodb
         Users/bernd/Library/Application[COLOR=Red]\[/COLOR] Support/Bento
    funktioniert ja im Terminal

    Das Problem ist nur das das AppleScript keinen Backslash vor dem Leerzeichen im Ordnernamen mit übergibt.
     
  12. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    Hast Du "quoted form" hier schon mal in sie Suche eingeben?
    Dann hättest Du nämlich eine hitzige Debatte entdeckt. Wenn man nicht recherchiert, dann wird es halt wirklich sehr schwierig. ;)

    Viele Grüße
     
  13. BerndderHeld

    BerndderHeld Spätblühender Taffetapfe

    Dabei seit:
    03.09.06
    Beiträge:
    2.801
    Naja, also das ich nicht recherchiert habe will Ich mir hier nicht vorwerfen lassen. Auch die Diskussion die es hier gab habe Ich gelesen.

    Leider funktioniert das quoted form of in diesem Fall wohl nicht. Das Problem ist ja das das Leerzeichen eben nicht "gequoted" wird. Mit einfachen BeispielOrdnern funktioniert das bei mir auch prächtig. Nur halt nicht mit Ordnern die Leerzeichen enthalten.

    Hast du es mal ausprobiert?
     
  14. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    Dein Code zeugt aber nicht davon. Soll aber nicht Gegenstand des Threads sein.

    Ich arbeite täglich damit ;)

    Anbei ein Beispiel, das Leerzeichen enthält.
    Einfach entpacken und das Skript ausführen.
    Es wird die Datei "Das ist ein Bild.png" in den Unterordner "Hier her bitte!" verschoben.

    Glaube ich nicht, da dieses das A und O im Umgang mit der Shell ist.

    Viele Grüße
     

    Anhänge:

    • Test.zip
      Dateigröße:
      18,1 KB
      Aufrufe:
      52

Diese Seite empfehlen