Nuevo aquí, pero tengo dificultades para armar un AppleScript que básicamente tomará un enlace SMB y lo convertirá en un enlace UNC antes de enviarlo a un par de clientes Win10.
Toda la misma red, todos usamos un SNS NAS y es para enlaces de Adobe Premiere. Podemos hacer todo esto manualmente, pero los editores no tienen tiempo ni paciencia para convertir cada enlace. Estamos buscando un script automatizado que podamos integrar como un servicio que convierta el texto seleccionado.
Encontré el artículo a continuación, pero es al revés de lo que estamos buscando. Intenté invertir todas las funciones pero no pude hacer que funcionara correctamente.
https://gist.github.com/anonymous/2211017
También sería increíble si el "servicio" que se crea simplemente copia la entrada en el portapapeles para que el usuario final pueda pegarla en un par de cosas diferentes, como el correo electrónico y Slack Messenger.
Espero que alguien pueda ayudarme o guiarme en la dirección correcta. He estado buscando en Google por esto durante aproximadamente una semana.
EDITAR ** Ejemplos a continuación
Antigua ruta 'smb://servidor/carpeta'
Nueva ruta '\\servidor\carpeta'
tal vez un poco tarde para la fiesta, pero usamos una aplicación de terceros para esto en el trabajo
funciona bastante bien, especialmente porque puede hacer clic derecho en cualquier archivo en una unidad UNC y copiar el nombre de la ruta para obtener el resultado de Windows
NOTA: ¡Esta respuesta solo pretende ser un ejemplo cuando la ruta SMB, aparte de los dos puntos, las barras diagonales y las barras diagonales inversas y sin espacios, solo contiene caracteres alfanuméricos en el nombre! Si necesita tener en cuenta algo más, es decir, leer los comentarios de esta respuesta, deberá modificar el código según sus necesidades. Dicho esto, en todos mis años como administrador de sistemas de red e ingeniero de sistemas de red, nunca creé recursos compartidos que contuvieran espacios u otra cosa que no fuera la necesidad de dos puntos, barras diagonales, barras diagonales inversas y caracteres alfanuméricos y, por lo tanto, este ejemplo simple es todo lo que necesito para traducir cualquier ruta SMB que haya usado, por ejemplo, a una ruta UNC smb://server/folder
. \\server\folder
YMMV!
En Automator , cree un nuevo flujo de trabajo de servicio , luego agregue una acción Ejecutar AppleScript mientras reemplaza el código predeterminado de AppleScript con el siguiente código :
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 selectedText to item 1 of input as string
set convertedText to searchReplace(selectedText, "smb://", "\\\\")
set convertedText to searchReplace(convertedText, "/", "\\")
set the clipboard to convertedText as string
return convertedText
end run
Luego guarde el servicio como: Convertir ruta SMB a ruta UNC
Ahora Convertir ruta SMB a ruta UNC aparecerá en el menú Servicios o en el menú contextual de Servicios cuando se seleccione texto y cuando se utilice el Servicio , la ruta UNC se colocará en el portapapeles . (Por supuesto, esto supone que el texto seleccionado era en realidad una ruta SMB ; de lo contrario, lo que se coloca allí es el texto que se seleccionó cuando se ejecutó el Servicio , que incluirá las sustituciones realizadas).
La ruta SMB de ejemplo smb://server/folder
se convertirá en ruta UNC \\server\folder
y se colocará en el portapapeles .
Nota: Tenga en cuenta la configuración del Servicio en la imagen a continuación. La casilla de verificación La salida reemplaza el texto seleccionado no está marcada. Puede marcarlo, si eso es lo que desea, sin embargo, si el texto seleccionado no es realmente reemplazable, entonces el Servicio no aparecerá en el menú Servicios o en el menú contextual de Servicios .
\
espacios con escape?set convertedText to searchReplace(selectedText, "\\", "")
la que eliminará las barras diagonales inversas y, por lo tanto, supongo que manejará un espacio escapado. ¿Pueden las rutas UNC tener espacios? En caso afirmativo, ¿debería citarse una ruta UNC que tenga espacio?convertedText
, que será la ruta UNC colocada en el Portapapeles y citarlo si tiene espacios o no, ¿estaría bien citarlo? No puedo probar en este momento y por qué estoy pidiendo su opinión. Gracias.<>|?*"
.
usuario3439894