我想自动将 Windows PC 上的文件夹同步到连接到 raspberrypi 的外部硬盘。我的脚本可以运行,只需使用 rsync 即可复制 2 个文件夹。
我想通过任务计划程序自动执行它,但它不起作用。我尝试直接从任务计划程序将其作为 bash 脚本运行,并尝试了另一件我想到的事情。我编写了一个执行我的 bash 脚本的批处理文件。手动执行批处理文件时它可以工作,但当我通过任务计划程序执行时它不再工作,我无法弄清楚原因,因为我没有错误消息或其他东西。
我还编写了另一个批处理文件,它创建了一个文件夹并通过任务计划程序执行它,运行良好。问题肯定是任务计划程序和 bash 的问题。
任何帮助将非常感激!
Bash 脚本:
/bin/bash #!/bin/bash rsync -rtv -e “ssh -i /home/fernien/id_rsa” /mnt/g/100D3300/[电子邮件保护]://mnt/share/图片/正常 rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/Bilder\ 编辑/[电子邮件保护]://mnt/share/图片/编辑
运行此脚本的批处理文件:
尝试了不同的品种。带 -c、不带 -c、带“./”和不带。
@echo 关闭 脚本目录 执行以下命令:
答案1
感谢@FedonKadifeli。问题出在我的脚本中:手动执行时确实有效,我不知道为什么,但确实有效。
@echo 关闭 脚本目录 执行以下命令:
但它应该是这样的。更正后,它对我来说工作得很好。应该花更多时间在批处理脚本上。
@echo 关闭 C: cd \脚本\ 执行以下命令:
答案2
cd
在 DOS 批处理脚本中,借助命令的换向器,您可以使用一行命令更改驱动器和路径/D
。因此,您最终会得到以下内容:
@echo off
cd /D c:\scripts\
bash.exe -c "./sync.bash"