So führen Sie ein Bash-Skript mit dem Taskplaner aus (Windows 10 V1903)

So führen Sie ein Bash-Skript mit dem Taskplaner aus (Windows 10 V1903)

ich möchte den Ordner auf meinem Windows-PC automatisch mit meiner externen Festplatte synchronisieren, die an einen Raspberry Pi angeschlossen ist. Mein Skript funktioniert und verwendet einfach rsync, um 2 Ordner zu kopieren.

Ich möchte es über den Taskplaner automatisieren, aber es funktioniert nicht. Ich habe versucht, es direkt als Bash-Skript aus dem Taskplaner auszuführen, und ich habe noch etwas anderes ausprobiert, das mir in den Sinn kam. Ich habe eine Batchdatei geschrieben, die mein Bash-Skript ausführt. Es funktioniert, wenn ich die Batchdatei manuell ausführe, aber wenn ich es über den Taskplaner mache, funktioniert es nicht mehr und ich kann nicht herausfinden, warum, da ich keine Fehlermeldungen oder so etwas bekomme.

Ich habe auch eine weitere Batchdatei geschrieben, die einen Ordner erstellt und sie über den Taskplaner ausgeführt hat, was gut funktioniert hat. Das Problem muss etwas mit dem Taskplaner und Bash zu tun haben.

Jede Hilfe wäre sehr willkommen!

Bash-Skript:

#!/bin/bash

rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/100D3300/[email geschützt]://mnt/share/Bilder/Normal
rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/Bilder\ Editiert/[email geschützt]://mnt/share/Bilder/Editiert

Batchdatei zum Ausführen dieses Skripts:

verschiedene Varianten probiert. Mit -c, ohne -c, mit "./" und ohne.

@echo aus
c:\scripts\
bash.exe -c "./sync.bash"

Antwort1

Danke an @FedonKadifeli. Das Problem lag in meinem Skript: Es funktionierte nicht, als es manuell ausgeführt wurde. Ich weiß nicht, warum, aber es funktionierte.

@echo aus
c:\scripts\
bash.exe -c "./sync.bash"

Aber es sollte so aussehen. Nachdem ich es korrigiert hatte, funktionierte es bei mir einwandfrei. Hätte mehr Zeit mit Batch-Scripting verbringen sollen.

@echo aus
C:
cd \Skripte\
bash.exe -c "./sync.bash"

Antwort2

cdIn Ihrem DOS-Batchskript können Sie dank des Befehlskommutators Laufwerk und Pfad mit einem einzeiligen Befehl ändern /D. Das Ergebnis wäre dann:

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

verwandte Informationen