Pri*_*esh 5 windows shell batch-file robocopy git-bash
当我使用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
Run Code Online (Sandbox Code Playgroud)
于 2016/09/19 编辑 -经过测试,可以正常工作
以2或更大的/开头的参数被认为是Windows样式的转义参数,将以前导/删除且所有\更改为/传递。
- 除非在/的前导块之后有/,否则该参数被视为UNC路径,并且不删除前导/。
注意:这只是完整列表的一小部分。最好在Windows中使用git bash shell时阅读完整列表
因此,在这种情况下,解决方案是将交换机中的正斜杠加倍
robocopy "Z:\ubuntushare" "C:\Natlink\Natlink\MacroSystem" "_git.py" //IS
Run Code Online (Sandbox Code Playgroud)
ROBOCOPY 使用 Windows 风格的正斜杠/
来指定命令行选项。这不适用于 Git-bash 或类似的终端,因为斜杠root
在 Linux 和类似环境中被解释为路径。
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
515 次 |
最近记录: |