当我使用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
编辑 2016/09/19 – 测试和它的作品
从MinGW Posix路径转换
一个以2或更多/开头的参数被认为是一个逃逸的Windows风格的开关,并将通过前导/删除和所有\改为/。
- 除了如果/之后有一个/后面的参数,这个参数被认为是一个UNC路径,并且前导/不会被删除。
注意 :这只是完整列表的一小部分。 在Windows中使用git bash shell时,最好阅读完整列表
所以,在这种情况下,解决方案是将交换机中的正斜杠加倍
robocopy "Z:\ubuntushare" "C:\Natlink\Natlink\MacroSystem" "_git.py" //IS
ROBOCOPY使用Windows风格的正斜杠/
来指定命令行选项。 这对于Git-bash或类似的终端来说并不合适,因为斜杠在Linux和类似环境中被解释为root
路径。
shell将/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