如何使用任務排程器執行bash腳本(Windows 10 V1903)

如何使用任務排程器執行bash腳本(Windows 10 V1903)

我想自動將 Windows 電腦上的資料夾同步到連接到樹莓派的外部硬碟。我的腳本有效,僅使用 rsync 複製 2 個資料夾。

我想透過任務計劃程序自動化它,但它不起作用。我嘗試直接從任務計劃程式將其作為 bash 腳本運行,並嘗試了我想到的另一件事。我編寫了一個執行 bash 腳本的批次檔。它在每手執行批次檔時有效,但當我透過任務規劃程式執行它時,它不再工作,而且我無法弄清楚為什麼,因為我沒有錯誤訊息或其他內容。

我還編寫了另一個批次文件,它創建一個資料夾並透過任務規劃程式執行它,效果很好。問題一定是任務計劃程序和 bash 的問題。

任何幫助將非常感激!

重擊腳本:

#!/bin/bash

rsync -rtv -e“ssh -i /home/fernien/id_rsa”/mnt/g/100D3300/[電子郵件受保護]://mnt/share/Bilder/Normal
rsync -rtv -e“ssh -i /home/fernien/id_rsa”/mnt/g/Bilder\ Editiert/[電子郵件受保護]://mnt/share/Bilder/Editiert

運行此腳本的批次檔:

嘗試了不同的品種。帶 -c、不帶 -c、帶「./」、不帶。

@迴聲關閉
c:\腳本\
bash.exe -c“./sync.bash”

答案1

感謝@FedonKadifeli。問題出在我的腳本中:這在手動執行時確實有效,我不知道為什麼,但它確實有效。

@迴聲關閉
c:\腳本\
bash.exe -c“./sync.bash”

但它應該看起來像這樣。糾正後,它對我來說效果很好。應該花更多的時間來編寫批次腳本。

@迴聲關閉
C:
cd \腳本\
bash.exe -c“./sync.bash”

答案2

cd在 DOS 批次腳本中,借助命令的換向器,您可以使用一行命令來變更磁碟機和路徑/D。因此你最終會得到以下結果:

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

相關內容