Volver al blog

Cómo ejecutar un comando de shell cuando se añade un archivo (Windows y Mac)

Ejecuta un comando de shell automáticamente cuando un archivo llega a una carpeta, en Windows y Mac. Sin Programador de tareas, sin cron, sin AppleScript.

16 de junio de 2026
File Arbor Team

Ejecutar un comando cuando un archivo aparece en una carpeta solía significar el Programador de tareas en Windows, cron o AppleScript en Mac, o Hazel si ya estabas en un Mac. File Arbor lo hace con una regla: eliges la carpeta, defines la coincidencia de archivos, seleccionas Ejecutar comando y tu script se lanza una vez por archivo coincidente, igual en Windows que en macOS. Es una función Pro, añadida en la versión 1.1.0.

Esta guía muestra cómo configurarlo, las variables que tienes a tu disposición, cómo probar un comando antes de confiar en él y unas cuantas recetas que merece la pena copiar.

Por qué esto es más complicado de lo que debería

La necesidad es simple: "cuando un archivo aparezca aquí, hazle algo". Las herramientas, normalmente, no lo son.

En macOS, Hazel ejecuta scripts de shell como acción de regla desde hace años. Es excelente, y solo para Mac. Si estás en Windows, Hazel no es una opción y nunca lo será.

Las vías integradas son toscas. El Programador de tareas de Windows puede ejecutar un archivo batch con un temporizador, pero vigila el reloj, no la carpeta, y la lógica de coincidencia la escribes tú mismo con forfiles o PowerShell. En macOS, las Acciones de carpeta y cron funcionan, pero implican montar AppleScript o pegamento de shell y depurarlo en la Consola. Ninguna de estas opciones te da una lista de qué archivos se procesaron ni qué imprimió cada comando.

Lo que la mayoría quiere en realidad es una regla: coincidir con un archivo, ejecutar un comando, ver qué pasó. Ese es el hueco que llena la acción Ejecutar comando de File Arbor, en ambas plataformas.

Qué hace la acción Ejecutar comando

Una regla de File Arbor es un par SI/ENTONCES. El lado SI coincide con archivos por extensión, patrón de nombre, regex completa, tamaño o antigüedad. El lado ENTONCES es la acción. Ejecutar comando es una de las acciones, junto con mover, renombrar, mover a la papelera y eliminar permanentemente.

Cuando un archivo coincide —en una ejecución manual, según una programación o en el instante en que llega a una carpeta vigilada—, File Arbor ejecuta tu comando una vez para ese archivo. En Windows lo hace a través del shell del sistema, así que funcionan la sintaxis batch, PowerShell y cualquier cosa de tu PATH. En macOS también pasa por el shell, así que tus herramientas habituales de línea de comandos están disponibles. Mismo modelo de reglas, mismo editor, las dos plataformas.

Ejecutar comando es una función Pro. Si estás en el plan gratuito, puedes desbloquearla con una licencia Pro: pago único, con 30 días de garantía de reembolso.

Cómo ejecutar un comando cuando se añade un archivo

Aquí tienes la configuración completa. Lleva unos dos minutos.

  1. Añade la carpeta que quieres vigilar. Pulsa Añadir carpeta y elige dónde llegan los archivos: Downloads, una carpeta de proyecto, un directorio de salida de un escáner, lo que encaje con tu flujo de trabajo.
  2. Crea una regla y define las condiciones de coincidencia. Añade una regla y configura el lado SI. Coincidencia por extensión (.md), un patrón de nombre, una regex como ^invoice_\d{4}\.pdf$, un umbral de tamaño o una antigüedad. Solo los archivos coincidentes activan el comando.
  3. Elige Ejecutar comando como acción. En el lado ENTONCES, selecciona Ejecutar comando y escribe tu comando. Usa las variables de abajo allí donde necesites la ruta o el nombre del archivo.
  4. Prueba el comando con un archivo de muestra. Pulsa Probar. File Arbor ejecuta el comando una vez sobre una muestra y muestra el código de salida, la salida y la duración. Arréglalo aquí, antes de que se ejecute sin supervisión.
  5. Guarda la regla y activa el Modo Automático. Guárdala y luego activa el Modo Automático para ejecutarla en tiempo real cuando lleguen archivos. También puedes lanzar las reglas a mano o de forma programada.

Ese es todo el ciclo. Sin archivo batch, sin tarea programada, sin archivos de script que mantener aparte de la regla.

Las variables que puedes usar

Dentro de un comando tienes tres variables disponibles:

  • {filePath} — la ruta completa al archivo coincidente
  • {fileName} — solo el nombre del archivo, con su extensión
  • {folder} — la carpeta en la que está el archivo

File Arbor las entrecomilla por ti, así que las rutas con espacios funcionan sin que tengas que envolver nada entre comillas. Escribes {filePath}, no "{filePath}".

Pruébalo antes de confiar en él

Un comando que se ejecuta sin supervisión solo sirve si sabes que funciona. Dos cosas lo hacen seguro.

El botón Probar ejecuta tu comando una vez contra un archivo de muestra e informa del código de salida, la salida y cuánto tardó. Ves exactamente qué hace el comando antes de guardar la regla.

El panel de Ejecuciones de comandos registra cada ejecución real: el comando, el archivo, el código de salida y la salida completa. Cuando algo falla a las 3 de la madrugada, no estás adivinando. La salida está ahí cuando lo revisas.

Ejemplos reales que vale la pena copiar

Commit automático de notas a un repositorio git. Suelta un archivo Markdown en una carpeta de notas y haz que se confirme de forma automática.

  • Vigilar: C:\Projects\notes (o ~/Projects/notes en Mac)
  • Coincidencia: la extensión es .md
  • Comando: git -C {folder} add {fileName} && git -C {folder} commit -m "Add {fileName}"

Comprime el vídeo en cuanto llega. Recodifica las grabaciones de pantalla para ahorrar espacio.

  • Coincidencia: la extensión es .mov
  • Comando: ffmpeg -i {filePath} -vcodec libx265 -crf 28 {folder}/compressed-{fileName}

Sube los exports terminados a otro sitio. Envía un render a un servidor de copias con rsync o scp.

  • Coincidencia: el nombre empieza por export_
  • Comando: rsync {filePath} backup:/media/incoming/

Avísate cuando llegue un archivo concreto. Lanza una notificación de escritorio o un webhook para saber que entró una factura o un informe.

El patrón siempre es el mismo: coincide con el archivo, ejecuta la herramienta que ya usas. File Arbor es el disparador y el selector de archivos; tu comando hace el trabajo.

Cómo se compara con los scripts de shell de Hazel

Si llegaste aquí desde un flujo de trabajo de Hazel, la equivalencia es directa. La acción "run shell script" de Hazel y la acción Ejecutar comando de File Arbor ejecutan un comando por archivo coincidente con acceso a la ruta del archivo. La diferencia es el alcance: Hazel se ejecuta solo en macOS, mientras que File Arbor ejecuta la misma regla en Windows y Mac. Para una comparación más a fondo, lee File Arbor frente a Hazel.

Lo que File Arbor no replica son los enganches de scripting específicos de macOS de Hazel: las condiciones de AppleScript y de metadatos de Spotlight. Si tu automatización depende de eso, Hazel sigue teniendo ventaja en el Mac. Para ejecutar comandos y scripts contra archivos, las dos están a la par.

Límites y seguridad

Unas cuantas cosas que conviene saber antes de montar algo importante:

  • Una ejecución por archivo. Un archivo coincidente activa el comando una vez, no en bucle.
  • Tiempo límite de 30 segundos. Los comandos caducan a los 30 segundos por defecto, así que un script colgado no puede bloquear tus otras reglas.
  • No está en la versión de Microsoft Store. Las políticas de la tienda impiden que las aplicaciones lancen comandos arbitrarios, así que la versión de la tienda sale sin Ejecutar comando. La descarga directa sí la incluye.

Empieza con un solo comando

Elige una cosa repetitiva que hagas a mano con tus archivos —un commit, una compresión, una subida— y conviértela en una sola regla. Descarga File Arbor y empieza con el plan gratuito, o lee qué más llegó en la 1.1.0. ¿Nuevo en la aplicación? La guía de inicio configura tu primera regla en unos cinco minutos.

FAQ

¿Puede File Arbor ejecutar scripts de shell como Hazel?

Sí. La acción Ejecutar comando de File Arbor lanza cualquier comando o script de shell una vez por archivo coincidente, con las variables {filePath}, {fileName} y {folder}. Cubre el mismo terreno que la acción de script de Hazel, y además funciona en Windows, donde Hazel no existe. Es una función Pro.

¿Funciona la ejecución de comandos por eventos de archivo en Windows?

Sí. File Arbor ejecuta comandos tanto en Windows como en macOS. En Windows lo hace a través del shell del sistema, así que funcionan los comandos batch, PowerShell y cualquier herramienta de tu PATH. No necesitas el Programador de tareas ni un archivo batch aparte.

¿Está la acción Ejecutar comando en la versión gratuita?

No. Ejecutar comando es una función Pro: un pago único de 24,99 $ con 30 días de garantía de reembolso. El plan gratuito sigue incluyendo las acciones de mover, renombrar y mover a la papelera.

¿Por qué no está Ejecutar comando en la versión de Microsoft Store?

Las políticas de Microsoft Store impiden que las aplicaciones lancen comandos arbitrarios, así que la versión de la tienda se entrega sin la acción Ejecutar comando. Descarga File Arbor directamente desde filearbor.com para tenerla. Todo lo demás es idéntico entre ambas versiones.

¿Qué pasa si mi comando se cuelga o falla?

Los comandos tienen un tiempo límite de 30 segundos por defecto, así que un script atascado no puede bloquear tus reglas. Cada ejecución queda registrada en el panel de Ejecuciones de comandos con su código de salida y su salida completa, de modo que un fallo a las 3 de la madrugada te espera con los detalles cuando lo revisas.