Unix Pfad aus AppleScript angeben?

  1. CrazyMetal

    CrazyMetal Thread StarterMacUser Mitglied

    Mitglied seit:
    21.12.2001
    Beiträge:
    65
    Zustimmungen:
    0
    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
     
    CrazyMetal, 09.03.2006
  2. w2lab

    w2labMacUser Mitglied

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

    CrazyMetal Thread StarterMacUser Mitglied

    Mitglied seit:
    21.12.2001
    Beiträge:
    65
    Zustimmungen:
    0
    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
     
    CrazyMetal, 09.03.2006
  4. lengsel

    lengselMacUser Mitglied

    Mitglied seit:
    25.11.2003
    Beiträge:
    4.553
    Zustimmungen:
    53
    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
     
    lengsel, 09.03.2006
  5. CrazyMetal

    CrazyMetal Thread StarterMacUser Mitglied

    Mitglied seit:
    21.12.2001
    Beiträge:
    65
    Zustimmungen:
    0
    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
     
    CrazyMetal, 09.03.2006
  6. w2lab

    w2labMacUser Mitglied

    Mitglied seit:
    21.02.2006
    Beiträge:
    125
    Zustimmungen:
    1
    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?
     
    w2lab, 09.03.2006
  7. chebfarid

    chebfaridMacUser Mitglied

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

    CrazyMetal Thread StarterMacUser Mitglied

    Mitglied seit:
    21.12.2001
    Beiträge:
    65
    Zustimmungen:
    0
    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
     
    CrazyMetal, 10.03.2006
  9. lengsel

    lengselMacUser Mitglied

    Mitglied seit:
    25.11.2003
    Beiträge:
    4.553
    Zustimmungen:
    53
    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
     
    lengsel, 10.03.2006
  10. CrazyMetal

    CrazyMetal Thread StarterMacUser Mitglied

    Mitglied seit:
    21.12.2001
    Beiträge:
    65
    Zustimmungen:
    0
    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
     
    CrazyMetal, 10.03.2006
Die Seite wird geladen...
Ähnliche Themen - Unix Pfad aus
  1. Bricolage
    Antworten:
    0
    Aufrufe:
    352
    Bricolage
    09.12.2015
  2. Bereusei
    Antworten:
    2
    Aufrufe:
    747
    Bereusei
    22.01.2014
  3. ayuda
    Antworten:
    2
    Aufrufe:
    585
  4. bluedisc
    Antworten:
    1
    Aufrufe:
    524
    little_pixel
    06.08.2010
  5. detto
    Antworten:
    6
    Aufrufe:
    1.377