我正在编写一个批处理文件,用于将某个文件复制到 samba 共享。
我已经读过了robocopy 传输文件而不是文件夹 并认为我会很好地利用
robocopy "E:\Some\Path\with spaces" "\\sambaServer\some\path\with spaces" "myFile.rar" /z /MIR
但我不断看到
Source: E:\Some\Path\with spaces\
Destination: \\sambaServer\Some\path\with spaces" myFile.rar \Z \MIR\
Files: *.*
当然我得到了一个错误
错误 123 (0x0000007B) 访问目标文件夹 \\sambaServer\Some\path\with 空格" myFile.rar \Z \MIR\ 文件名、文件夹名或卷标的语法不正确。
因此显然robocopy
将整个第二部分(目标文件夹、文件和参数)一起作为目标文件夹。
为什么这不起作用?我做错了什么?
当我复制整个文件夹而不是使用时它起作用了
robocopy "E:\Some\Path\with spaces" "\\sambaServer\some\path\with spaces" /z /MIR
答案1
嗯,我不确定,但看起来可能是权限问题,看这里 http://blogs.technet.com/filecab/archive/2008/07/31/robocopy-mir-switch-mirroring-file-permissions.aspx
对我来说 robocopy 工作正常:
robocopy “D:\test” “\共享名称\文件夹名称\test test” “11.rar” /z /MIR
答案2
请注意,ROBOCOPY 存在一个缺陷,如果指定单个文件,即使文档表明该文件应该有效,它也会失败。只需在文件名末尾添加通配符 (*),它就会被复制。(当然,如果通配符命中多个文件,则所有命中的文件都将被复制,因此这不是解决缺陷的理想方法。