4 votos

Necesidad de automatizar una ruta SMB en una ruta UNC antes de enviarla a clientes Win10

Nuevo aquí, pero estoy teniendo dificultades para armar un AppleScript que, básicamente, tomar un enlace SMB y convertirlo en un enlace UNC antes de enviarlo a un par de clientes Win10.

Todos misma red, todos estamos usando un NAS SNS y es para los enlaces de Adobe Premiere. Podemos hacer todo esto manualmente, pero los editores no tienen tiempo/paciencia para convertir cada enlace. Estamos buscando un script automatizado que podamos integrar como un servicio que convierta el texto seleccionado.

He encontrado el artículo de abajo, pero es al revés de lo que estamos buscando. He intentado invertir todas las funciones en él, pero no fue capaz de conseguir que funcione correctamente.

https://gist.github.com/anonymous/2211017

También sería genial 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 el mensajero Slack.

Espero que alguien pueda ayudarme o guiarme en la dirección correcta. He estado buscando esto en Google durante una semana.

EDIT** Ejemplos

Camino viejo smb://servidor/carpeta

Nuevo camino ' \\server\folder '

0 votos

Borré mi respuesta original después de algunos comentarios de klanomath porque en ese momento era tarde y necesitaba dormir. He añadido una advertencia, la nota al principio de mi respuesta, y la he borrado. Espero que como un ejemplo que cubre sus necesidades sin embargo, si usted necesita más que eso, a continuación, sin fecha de su pregunta en consecuencia y si necesita ayuda adicional con la codificación voy a ver lo que puedo hacer por usted.

5voto

marvin137 Puntos 341

Tal vez un poco tarde a la fiesta, pero usamos una aplicación de terceros para esto en el trabajo

convertidor de enlaces

funciona bastante bien, sobre todo porque puedes hacer clic con el botón derecho en cualquier archivo de una unidad UNC y copiar la ruta para obtener el resultado de Windows

0voto

user3439894 Puntos 5883

NOTA: Esta respuesta está pensada sólo como ejemplo cuando la ruta SMB, aparte de los dos puntos, las barras oblicuas y las barras invertidas y sin espacios, ¡sólo contiene caracteres alfanuméricos en el nombre! Si necesitas tener en cuenta cualquier otra cosa, es decir, si lees los comentarios de esta respuesta, tendrás que modificar el código según tus necesidades. Dicho esto, en todos mis años como Administrador de Sistemas de Red e Ingeniero de Sistemas de Red nunca he creado recursos compartidos que contengan espacios u otros que no sean la necesidad de dos puntos, barras oblicuas, barras invertidas y caracteres alfanuméricos y por lo tanto este simple ejemplo es todo lo que necesitaría para traducir cualquier, por ejemplo smb://server/folder a \\server\folder SMB que he usado a una ruta UNC. ¡YMMV!


En Autómata crear un nuevo Servicio flujo de trabajo a continuación, añada un Ejecutar AppleScript acción a la vez que sustituye al predeterminado AppleScript código con el código abajo:

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

A continuación, guarde el Servicio como: Convertir ruta SMB en ruta UNC

Ahora Convertir ruta SMB en ruta UNC aparecerá en el Servicios menú o Servicios menú contextual cuando texto es seleccionado y cuando el Servicio se utiliza el Ruta UNC se coloca en el Portapapeles . (Por supuesto, esto supone que el texto seleccionado era en realidad un Ruta SMB De lo contrario, lo que se coloca allí es lo que sea. texto fue seleccionado cuando el Servicio que incluirá todas las sustituciones realizadas).

Ejemplo Ruta SMB smb://server/folder se convertirá en Ruta UNC \\server\folder y se coloca en el Portapapeles .

Nota: Tenga en cuenta los ajustes del Servicio en la imagen inferior. En La salida sustituye el texto seleccionado casilla no está marcada. Puede marcarlo, si eso es lo que quiere, sin embargo, si el texto seleccionado no es realmente sustituible, entonces el Servicio no aparecerá en el Servicios menú o Servicios menú contextual .

Convert SMB Path to UNC Path Automator Service

0 votos

¿Qué ocurre cuando la ruta SMB contiene espacios o \ ¿espacios de fuga?

0 votos

@klanomath, ¡no lo había pensado! Supongo que la primera sustitución podría ser set convertedText to searchReplace(selectedText, "\\", "") que eliminará cualquier barra invertida y, por lo tanto, supongo que manejará un espacio escapado. ¿Las rutas UNC pueden tener espacios? En caso afirmativo, ¿debe entrecomillarse una ruta UNC que contenga espacios?

0 votos

AFAIK Las rutas UNC que contienen espacios deben entrecomillarse en Windows . Escapar de ellos o un %20 probablemente no funcionará

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