bash - 从 Windows cmd 在 bash 中调用 rsync
问题描述
我正在尝试rsync
从批处理文件运行。命令是
SET CMD="rsync -P -rptz --delete -e 'ssh -i /root/.ssh/CERTIFICATE.pem' SOURCE_ADDRESS /mnt/c/Users/MYNAME/IdeaProjects/PROJECT/SUBFOLDER/SUBFOLDER/SUBFOLDER/SUBFOLDER/LASTFOLDER"
bash %CMD%
如果我在输入 后运行命令,这很好用bash
,但是当我从 cmd 运行命令时,bash
它会显示没有这样的文件或目录。
此外,当玩弄并尝试调试 bash 时,最终会挂起......即,如果我打开 bash,我没有得到任何提示,只是一个闪烁的光标。
任何帮助表示赞赏。
解决方案
要使用 bash 运行命令,您需要使用该-c
选项
bash -c "%CMD%"
没有它,第一个非选项参数将被视为 *.sh shell 脚本,这rsync
不是并且会导致错误
如果在选项处理之后参数仍然存在,并且既没有提供 the
-c
也没有-s
提供选项,则假定第一个参数是包含 shell 命令的文件的名称。
请注意,Windows 中的 cmd 不是 DOS,即使它们有一些类似的命令。其余的差别很大
推荐阅读
- python - 使用 OCR 处理图像
- javascript - 如何打开新浏览器的链接?如果此链接已在新浏览器中打开,则刷新该打开的选项卡而不是打开新选项卡
- php - 使用数组列进行数组搜索在数组中不起作用
- javascript - React 和 Redux:从动作类型的有效负载中提取数据
- python - 如何在 S3 boto3 中删除多个文件和特定模式
- c# - 在同一 API 调用 c# 中上传文件和数据
- mysql - SQL检索在特定时间进行交易的用户名
- python - 在 Python 中自动化 Global Protect VPN 连接
- c# - C# Blazor 表 RemoveVariant 事件
- c# - 如何加载 ResponseCompressionDefaults 函数(Blazor WebAssembly SignalR)