Nota: Esta respuesta fue escrito basado en el original de la publicación de la pregunta y, en particular, los tres primeros párrafos de esta respuesta, sans esta nota. Desde entonces, la OP ha sido actualizado a la dirección de lo que se expresó en los tres primeros párrafos y que ahora puede parecer fuera de contexto. Sin embargo, mirando el historial de edición de la OP, uno puede ver la relevancia en el contexto de la pregunta original. Ellos permanecerán por ahora hasta tengo el tiempo para hacer una edición correspondiente.
Lo siento, pero tu pregunta no está bien definido y no es totalmente claro qué acciones se agrega a la Automator Carpeta Acción de flujo de trabajo, sin la obvia Ejecutar AppleScript acción. Tampoco está claro si hay alguna de las acciones añadido antes o después de Ejecutar AppleScript acción. Además, no está claro cuál es el código se encuentra en /Users/jeffolaa/pointer.sh
o la totalidad de lo que está haciendo. Lo que me lleva a creer que, simplemente pasando el name
del archivo a pointer.sh
puede no ser suficiente. Aunque sin ver el código en pointer.sh
, en este punto sólo usted conozca.
También, la forma de la AppleScript código que has mostrado en la cooperativa no es la correcta forma de un Automator Carpeta Acción de flujo de trabajo utilizando un Ejecutar AppleScript acción. El on adding folder items
controlador es del tipo utilizado en un AppleScript secuencia de comandos (.scpt) archivo que se ha asignado manualmente a la carpeta de destino el uso de la Carpeta de la Acción de Instalación... de comando de los Servicios de menú de contexto en el Buscador, no Automator, donde es necesario utilizar el on input
de controlador en el Ejecutar AppleScript acción.
Usted también no tiene ningún código de control de errores, lo cual es importante en las Acciones de Carpeta y el tipo y la cantidad puede depender de lo que ha codificado en la pointer.sh
. En otras palabras, es posible que desee filtrar los elementos agregados a la carpeta por tipo, asegurándose de que es un archivo no es una carpeta, o un tipo particular de archivo con una extensión determinada, etc. Esto se puede hacer en Automator antes de que llegue al Ejecutar AppleScript acción, o en el código de Ejecutar AppleScript acción, o en el código en pointer.sh
, o una combinación de cualquiera de ellos o todos.
Con eso dicho, el siguiente ejemplo de AppleScript código es de un mínimo de codificación de lo que tiene sentido para ser capaz de pasar el citado nombre completo de la ruta de el archivo(s) que se agrega a la carpeta de destino se establece en Automator la Carpeta de la Acción recibe el archivo y carpetas añadido a [carpeta] para pasar a pointer.sh
, ya que es típico de un argumento se pasa a un comando de la shell.
Mínimo ejemplo de AppleScript código para su uso en Ejecutar AppleScript acción en un Automator Carpeta Acción de flujo de trabajo:
on run {input, parameters}
repeat with i from 1 to count input
try
set thisItem to item i in input
set thisItemsPathname to quoted form of POSIX path of thisItem
do shell script "/Users/jeffolaa/pointer.sh " & thisItemsPathname
end try
end repeat
end run
Mínimo ejemplo de AppleScript código para su uso en un AppleScript secuencia de comandos (.scpt) archivo asignado manualmente a la carpeta de destino el uso de la Carpeta de la Acción de Instalación... de comando de los Servicios de menú de contexto en el Buscador:
on adding folder items to thisFolder after receiving theseItems
repeat with i from 1 to count theseItems
try
set thisItem to item i in theseItems
set thisItemsPathname to quoted form of POSIX path of thisItem
do shell script "/Users/jeffolaa/pointer.sh " & thisItemsPathname
end try
end repeat
end adding folder items to
- Nota: Para utilizar un AppleScript secuencia de comandos (.scpt) archivo usando la Carpeta de la Acción de Instalación... de comando de los Servicios de menú de contexto en el Buscador, lo primero que debe agregarse a la
~/Library/Scripts/Folder Action Scripts
carpeta que está dentro de su Casa de la carpeta.
Para probar el anterior código, he creado el /Users/jeffolaa/pointer.sh
archivo con el siguiente código en ella:
#!/bin/bash
mv "$1" "$HOME/Test/"
Que simplemente mueve los archivos a la carpeta desde la que se han arrastrado desde la carpeta de destino de la Carpeta de la Acción se le asigna, que es una carpeta dentro de la Prueba de la carpeta. Esto me permite saber que estaba funcionando correctamente codificados.
Ahora si es sólo la name
de el archivo que desea transferir a pointer.sh
, puede utilizar el siguiente:
Mínimo ejemplo de AppleScript código para su uso en Ejecutar AppleScript acción en un Automator Carpeta Acción de flujo de trabajo:
on run {input, parameters}
repeat with i from 1 to count input
try
set thisItem to item i in input
set thisItemsInfo to info for thisItem
set thisItemsFileName to quoted form of name in thisItemsInfo
do shell script "/Users/jeffolaa/pointer.sh " & thisItemsFileName
end try
end repeat
end run
Mínimo ejemplo de AppleScript código para su uso en un AppleScript secuencia de comandos (.scpt) archivo asignado manualmente a la carpeta de destino el uso de la Carpeta de la Acción de Instalación... de comando de los Servicios de menú de contexto en el Buscador:
on adding folder items to thisFolder after receiving theseItems
repeat with i from 1 to count theseItems
try
set thisItem to item i in theseItems
set thisItemsInfo to info for thisItem
set thisItemsFileName to quoted form of name in thisItemsInfo
do shell script "/Users/jeffolaa/pointer.sh " & thisItemsFileName
end try
end repeat
end adding folder items to
- Nota: Para utilizar un AppleScript secuencia de comandos (.scpt) archivo usando la Carpeta de la Acción de Instalación... de comando de los Servicios de menú de contexto en el Buscador, lo primero que debe agregarse a la
~/Library/Scripts/Folder Action Scripts
carpeta que está dentro de su Casa de la carpeta.
Para probar el anterior código, he editado el pointer.sh
archivo con el siguiente código:
#!/bin/bash
say "$1"
Que simplemente dice que el name
del archivo que se celebró en thisItemsFileName
, el cual me dejó saber que estaba funcionando correctamente codificados.
Nota: El ejemplo de AppleScript en el código de arriba es solo que, y sin envolver en un try
declaración, no incluye cualquier otro error de manipulación como puede ser apropiado/necesitaba/quería, la responsabilidad recae sobre el usuario para agregar cualquier error de manipulación para cualquier código de ejemplo presentado y / o el código escrito por el mismo.
Dicho esto, si usted desea actualizar su pregunta a llenar la falta de piezas como se ha mencionado en los primeros párrafos de mi respuesta, estaré encantado de editar estos ejemplos de código para reflejar lo adecuado manejo de errores debe ser añadido. No hay ningún sentido en la adición de hasta yo sé los detalles.