当我使用robocopy复制文件并使用选项/IS
覆盖(如果已存在于目的地)。它将该选项视为另一个文件,日志可以看到:ERROR : Invalid Parameter #4 : "C:/Program Files/Git/IS"
任何人都知道如何在覆盖目的地的文件时复制Windows中的文件。
$ robocopy "Z:\ubuntushare" "C:\Natlink\Natlink\MacroSystem" "_git.py" /IS
ROBOCOPY :: Robust File Copy for Windows
Started : Sat Sep 17 18:00:05 2016
Source - Z:\ubuntushare\
Dest - C:\Natlink\Natlink\MacroSystem\
Files : _git.py
Options : /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
ERROR : Invalid Parameter #4 : "C:/Program Files/Git/IS"
Simple Usage :: ROBOCOPY source destination /MIR
source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir (drive:\path or \\server\share\path).
/MIR :: Mirror a complete directory tree.
For more usage information run ROBOCOPY /?
**** /MIR can DELETE files as well as copy them !
pri@pri-PC MINGW64 /c/NatLink/NatLink/MacroSystem
答案 0 :(得分:4)
已编辑 2016/09/19 - 经过测试并且有效
以2或更多/开头的参数被视为转义Windows 样式开关并将通过领先/删除和所有\ 改为/.
- 除非在/的前导块之后有/,该参数被认为是UNC路径而前导/不是 除去。
note :这只是完整列表的 small 摘录。在windows
中使用git bash shell时,最好阅读完整列表因此,在这种情况下,解决方案是将开关中的正斜杠加倍
robocopy "Z:\ubuntushare" "C:\Natlink\Natlink\MacroSystem" "_git.py" //IS
答案 1 :(得分:3)
ROBOCOPY使用Windows样式正斜杠/
来指定命令行选项。这对Git-bash或类似终端不起作用,因为斜杠在Linux和类似环境中被解释为root
路径。
shell将/something
解释为根文件夹something
下的文件C:\Program Files\Git\
,而不是命令行选项。因此最终意味着"C:\Program Files\Git\something"
不存在。
即使尝试使用帮助选项/?
也会失败并出现类似错误。
使用linux / unix / mac标准 Robocopy允许使用破折号/连字符-opt
而不是/opt
。-
来指定选项。例如robocopy -?
有效并显示使用信息/帮助。所以:
robocopy "Z:\ubuntushare" "C:\Natlink\Natlink\MacroSystem" "_git.py" -IS