【问题标题】:What is the difference in command line argument syntax between bat and sh?bat 和 sh 的命令行参数语法有什么区别?
【发布时间】:2016-11-28 16:33:19
【问题描述】:

我正在尝试在 shell 脚本(实际上是一个 git 挂钩)中运行 robocopy(Windows 健壮副本)。在我添加选项 /XO 之前它工作正常。

所以命令:

robocopy source destination a.txt

在 .bat 和 .sh 文件中正常工作。

但是命令

robocopy source destination a.txt /XO

在 .sh 中失败并出现错误:

错误:参数 #3 无效:“C:/Program Files/Git/XO”

而它在 bat 文件中可以正常工作。

所以问题在于 robocopy/XO 选项;更具体地说,shell 脚本将参数传递给 robocopy 的方式。

请提出解决方案。

【问题讨论】:

标签: git bash shell batch-file robocopy


【解决方案1】:

如果您为此使用Git Bash,它会智能地将 Unix 风格的选项转换为 Windows 风格的选项。因此,例如,命令:

robocopy source destination a.txt -xo

会告诉你它正在使用/xo 选项:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------

  Started : Tue Feb 06 15:58:53 2018

   Source : c:\gitbashdir\source
     Dest : c:\gitbashdir\destination\

    Files : a.txt

  Options : /COPY:DAT /XO /R:1000000 /W:30

   : blah blah blah :

   Ended : Tue Feb 06 15:58:53 2018

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    相关资源
    最近更新 更多