Unix Pfad aus AppleScript angeben?

Diskutiere mit über: Unix Pfad aus AppleScript angeben? im Scripting und Automatisierung Forum

  1. CrazyMetal

    CrazyMetal Thread Starter MacUser Mitglied

    Beiträge:
    65
    Zustimmungen:
    0
    Registriert seit:
    21.12.2001
    Hallo,

    ich versuche grade ein AppleScript zu schreiben, welches verschiedene Shell-Scripte ausführt. Ich hole mir mittel "choose folder" den Pfad eines Ordners in AppleScript, allerdings hänge ich momentan an der Funktion die mir das Ganze dann in einen UNIX Pfad ändern soll.

    Ich habe mir da eine geschrieben, da wird z.B. aus ":" ein "/" und so weiter, eben für alle möglichen Zeichen die vorkommen können.
    Leider nur mit mittelmäßigem Erfolg, momentan tauscht die Funktion noch Dinge die Sie nicht soll. Mein Vorgehen ist, dass ich den ganzen Pfad als einzelne Zeichen "durch kurbel".
    Oder gibt es eine Funktion die das automatisch kann und ich habe diese nicht gefunden?

    Würde mich über Tipps freuen.

    CU,
    Nico
     
  2. w2lab

    w2lab MacUser Mitglied

    Beiträge:
    125
    Zustimmungen:
    1
    Registriert seit:
    21.02.2006
  3. CrazyMetal

    CrazyMetal Thread Starter MacUser Mitglied

    Beiträge:
    65
    Zustimmungen:
    0
    Registriert seit:
    21.12.2001
    posix zickt!

    Danke, habe ich auch schon probiert.

    set myPath to choose folder
    set myNewPath to getUnixPath(myPath)


    on getUnixPath(thePath)
    set newPath to POSIX path of thePath
    set theResult to {thePath,newPath}
    set thePath to theResult
    end getUnixPath


    So ungefähr (mal stark gekürtzt). ;)
    Allerdings springt er mir (z.B. beim "ls -dl") Befehl aus der Bahn und dieses immer wenn entweder
    a) Lücken im Ordnernamen sind ---> "Huddel duddel"
    b) Ordnernamen mit Sonderzeichen ----> "Tschöö mit Ö"

    Hat jemand eine Idee dafür?

    Grüße,
    Nico
     
  4. lengsel

    lengsel MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    Registriert seit:
    25.11.2003
    Wenn Du magst, nimm dieses: http://flolog.de/osx/?p=23 und pass es einfach an.

    a: auskommentieren, a la: /Users/Username/Desktop/Test\ Ordner/
    b: Sonderzeichen sind bloed

    Grüße,
    Flo
     
  5. CrazyMetal

    CrazyMetal Thread Starter MacUser Mitglied

    Beiträge:
    65
    Zustimmungen:
    0
    Registriert seit:
    21.12.2001
    Jau sind Sonderzeichen auch :)
    Ich habe mir mal einen "Dummy" angelegt und ihm aus dem Terminal angesprochen, das sieht dann so aus:

    cd /Volumes/Prophecy/Testen/Hat\ viele\ Leerzeich\ und\ ein\ o\314\210/

    Der Ordner heißt "Hat viele Leerzeichen und ein ö"

    CU,
    Nico
     
  6. w2lab

    w2lab MacUser Mitglied

    Beiträge:
    125
    Zustimmungen:
    1
    Registriert seit:
    21.02.2006
    einfach zusätzlich einfache Anführungszeichen ' verwenden
    do shell script "ls -dl '" & POSIX path of (choose folder) & "'"

    Probleme mit Sonderzeichen kann ich nicht nachvollziehen
    sicher das es nicht am Leerzeichen in "Tschöö mit Ö" liegt?
     
  7. chebfarid

    chebfarid MacUser Mitglied

    Beiträge:
    894
    Zustimmungen:
    75
    Registriert seit:
    05.10.2005
    Geht auch via script:
    Code:
    set thePath to quoted form of thePath
    Good scripting
    Farid
     
  8. CrazyMetal

    CrazyMetal Thread Starter MacUser Mitglied

    Beiträge:
    65
    Zustimmungen:
    0
    Registriert seit:
    21.12.2001
    Anführungszeichen...

    hi habe grade deinen code ausprobiert und er geht - egal wie viele Hundertausend Sonderzeichen da im Namen sind.

    ich habe das probiert:
    Code:
    set testPath to POSIX path of (choose folder)
    do shell script "ls -dl " & testPath
    Durch deine Setzung der Anführungszeichen bin ich noch nicht so ganz durchgestiegen, könntest du mir das bitte nochmal erklähren?

    Danke schonmal,
    Nico
     
  9. lengsel

    lengsel MacUser Mitglied

    Beiträge:
    4.627
    Zustimmungen:
    53
    Registriert seit:
    25.11.2003
    Ich bin mal so frei:

    nach do shell script kommt das was dann zusammengebaut den ganzen Befehl ergibt.
    Das was Du direkt auf der Kommandozeile tippen würdest ist der Teil zwischen den Anführungszeichen, also "ls -dl ". Das danach sind die Befehlsfragmente die sich aus dem was vorher in dem AS passiert ist ergeben. Das kaufmännische & verbindet die beiden Teile zu dem Gesamtbefehl.

    Mir hilft es bei sowas wenn ich mir den zusammengesetzten Befehl wie er ausgeführt werden würde erstmal ansehe. Dazu einfach das do shell script durch display dialog ersetzen. Hier kann ich dann sehen ob ich mir den Befehl passend zusammengebaut habe oder nicht. Wenn der dann mal passt ändere ich einfach wieder das display dialog in do shell script um.

    Grüße,
    Flo
     
  10. CrazyMetal

    CrazyMetal Thread Starter MacUser Mitglied

    Beiträge:
    65
    Zustimmungen:
    0
    Registriert seit:
    21.12.2001
    Des Rätsels Lösung?

    Hi Flo,

    danke für deine Antwort. Schon klar dann habe ich nachher das da stehen:
    ls -dl '/Volumes/MeinePladde/undDerOrdner/'

    Nur im Terminal schreibe ich das doch auch so:
    ls -ld /Volumes/MeinePladde/undDerOrdner/


    Oder habe ich da grade was übersehen?

    Grüße,
    Nico
     
Die Seite wird geladen...
Ähnliche Themen - Unix Pfad aus Forum Datum
Windows Pfad in Finder öffnen - Umlaute (Automator/AppleScript) Scripting und Automatisierung 09.12.2015
Pfad mit Umlauten öffnen Scripting und Automatisierung 22.01.2014
Fester Pfad statt Auswahl Scripting und Automatisierung 27.10.2013
Benutzerverwaltung via Applescript Scripting und Automatisierung 05.08.2010
String in Automator an UNIX-shell weitergeben Scripting und Automatisierung 27.11.2007

Diese Seite empfehlen

Benutzerdefinierte Suche