1 votos

Ruta POSIX de AppleScript a ruta smb

Quiero crear un servicio de automator que copie el smb:// ruta de una carpeta o archivo (como se obtendría de + + + C )

La razón por la que el atajo no es suficiente es para toda esa "gente mayor" (sin ánimo de ofender) que no puede recordar los atajos o no quiere usarlos en absoluto (el típico clic derecho -> copiar en lugar de + C usuarios).

Hasta ahora tengo la ruta POSIX, pero ¿cómo la transformo en mi ruta correcta? smb:// ¿camino?

on run
    tell application "Finder"
         set theItem to selection as string
    end tell
    set posixForm to POSIX path of theItem
    set the clipboard to posixForm
end run

Así que este camino /Volumes/someFolder/someSubFolder/ se convertiría en esto smb://Server/someFolder/someSubFolder/

1voto

user3439894 Puntos 5883

Es posible que tenga que Codificación de la URL algunos caracteres y espacios Sin embargo, aquí hay un poco de ejemplo AppleScript código que puede ser útil, aunque sólo codifica espacios :

tell application "Finder" to ¬
    set theItem to the first item of ¬
        the (selection as alias list)

set posixForm to POSIX path of theItem

set {TID, AppleScript's text item delimiters} to ¬
    {AppleScript's text item delimiters, " "}
set foo to text items of posixForm
set AppleScript's text item delimiters to "%20"
set foo to foo as string
set AppleScript's text item delimiters to "/"
set foo to text items 3 thru -1 of foo
set foo to foo as string
set smbForm to "smb://server/" & foo as string
set AppleScript's text item delimiters to TID

set the clipboard to smbForm

Notas:

Echa un vistazo a Codificación y descodificación de textos en el Guía de scripts de automatización para Mac .


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso del <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X