Windows Pfad in Finder öffnen - Umlaute (Automator/AppleScript)

Bricolage

Bricolage

Aktives Mitglied
Thread Starter
Dabei seit
22.01.2008
Beiträge
325
Reaktionspunkte
38
Hallo Macus

Ich möchte mit dem Automator (per AppleScript) Pfade aus der Windows-Welt für den Mac übersetzen und (vià SMB) im Finder öffnen.

Ich habe eine (fast) funktionierende Lösung zusammengesucht und für meine Bedürfnisse angepasst. Sie funktioniert mit einer Einschränkung: bei Umlauten in den Windows Pfaden (bzw. unserer Serverstruktur) verweigert das Script leider seinen Dienst. Über Hilfe würde ich mich sehr freuen :hamma:

Hier der erste Teil des Scripts (SMB Share mit xxx anonymisiert). Man kann damit einen Pfad (Text) z.B. in einer Email anwählen und mit einem Rechtsklick das Automatorscript ausführen. Der gewünschte SMB Folder wird im Finder geöffnet (gemountet um genau zu sein, aber dazu im zweiten Teil des Scripts)


on searchReplace(theText, SearchString, ReplaceString)
set OldDelims to AppleScript's text item delimiters
set AppleScript's text item delimiters to SearchString
set newText to text items of theText
set AppleScript's text item delimiters to ReplaceString
set newText to newText as text
set AppleScript's text item delimiters to OldDelims
return newText
end searchReplace


on run {input, parameters}

set myClip to the input
set mylocation to searchReplace(myClip, "<", "")
set mylocation to searchReplace(mylocation, ">.", "")
set mylocation to searchReplace(mylocation, ">", "")
set mylocation to searchReplace(mylocation, "\\", "/")
set mylocation to "smb:" & mylocation
set mylocation to searchReplace(mylocation, "smb:W:", "smb://17x.xx.xxx.xx/Dateien/")
set mylocation to searchReplace(mylocation, "smb:w:", "smb://17x.xx.xxx.xx/Dateien/")
set mylocation to searchReplace(mylocation, " ", "%20")


tell application "Finder"
open location mylocation
end tell


tell application "Finder"
activate
end tell

return input
end run


Da die (SMB) Folder leider gemountet werden, musste ich einen Weg finden um sie wieder auszuwerfen. Das macht der zweite Teil des Scripts (über exceptions behalte ich meine „fixen“ drives und werfe alles andere aus). Nicht sehr elegant, aber es funktioniert.

set exceptionsList to {"Dateien", "home", "net"}
tell application "Finder"
set diskList to the disks
repeat with mountedDisk in diskList
if name of mountedDisk is not in exceptionsList then
eject mountedDisk
end if
end repeat
end tell


Es wäre wirklich grossartig, wenn das erste Script auch bei Umlauten funktionieren würde...

(also z.B. W:\TEAM\2015\ Müller\Projekte)

hat vielleicht jemand eine Idee?

Vielen Dank & liebe Grüsse
Brico
 
Zurück
Oben Unten