Cómo ejecutar un script bash con el programador de tareas (Windows 10 V1903)

Cómo ejecutar un script bash con el programador de tareas (Windows 10 V1903)

Quiero sincronizar automáticamente la carpeta en mi PC con Windows con mi disco duro externo conectado a una raspberrypi. Mi script funciona y solo usa rsync para copiar 2 carpetas.

Quiero automatizarlo a través del Programador de tareas pero no funciona. Intenté ejecutarlo directamente como un script bash desde el Programador de tareas y probé otra cosa que me vino a la mente. Escribí un archivo por lotes que ejecuta mi script bash. Funciona cuando se ejecuta el archivo por lotes manualmente, pero cuando lo hago a través del Programador de tareas ya no funciona y no puedo entender por qué, ya que no tengo mensajes de error o algo así.

También escribí otro archivo por lotes que crea una carpeta y lo ejecuté a través del Programador de tareas, que funcionó bien. El problema tiene que ser algo relacionado con el Programador de tareas y bash.

¡Cualquier ayuda sería muy apreciada!

Guión de bash:

#!/bin/bash

rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/100D3300/[correo electrónico protegido]://mnt/share/Imagen/Normal
rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/Bilder\ Editiert/[correo electrónico protegido]://mnt/share/Bilder/Editiert

Archivo por lotes para ejecutar este script:

Probé diferentes variedades. Con -c, sin -c, con "./" y sin.

@eco apagado
c:\scripts\
bash.exe -c "./sync.bash"

Respuesta1

Gracias a @FedonKadifeli. El problema estaba en mi script: esto funcionó cuando se ejecutó manualmente, no sé por qué, pero así fue.

@eco apagado
c:\scripts\
bash.exe -c "./sync.bash"

Pero debería verse así. Después de corregirlo me funcionó bien. Debería haber dedicado más tiempo a las secuencias de comandos por lotes.

@eco apagado
C:
CD \scripts\
bash.exe -c "./sync.bash"

Respuesta2

en su secuencia de comandos por lotes de DOS, puede cambiar la unidad y la ruta con un comando de una línea gracias al conmutador cdde comandos /D. Por lo tanto terminarías con lo siguiente:

@echo off
cd /D c:\scripts\
bash.exe -c "./sync.bash"

información relacionada