robocopy 传输文件而不是文件夹

117 robocopy file-transfer

我正在尝试将robocopy单个文件从一个位置传输到另一个位置,但robocopy似乎认为我总是在指定一个文件夹。下面是一个例子:

robocopy "c:\transfer_this.txt" "z:\transferred.txt"
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

2009/08/11 15:21:57 ERROR 123 (0x0000007B) Accessing Source Directory c:\transfer_this.txt\
Run Code Online (Sandbox Code Playgroud)

(注意\末尾的transfer_this.txt

但如果我把它当作一个完整的文件夹:

robocopy "c:\folder" "z:\folder"
Run Code Online (Sandbox Code Playgroud)

它有效,但随后我必须传输文件夹中的所有内容。

我怎样才能只传输一个文件robocopy

KPW*_*INC 154

看: Robocopy /?

用法:ROBOCOPY 源目标 [文件 [文件]...] [选项]

robocopy c:\folder d:\folder transfer_this.txt
Run Code Online (Sandbox Code Playgroud)

  • @MikeGoatly 好点。Robocopy 不喜欢尾随 \。它希望您将目录命名为“名称”,并且不想以任何方式暗示它接受目录以外的任何内容。 (3认同)
  • @samsmith 当你在结束引号之前有一个 \ 时,我看到它会打嗝(即: ROBOCOPY "c:\folder1\" c:\folder2 文件不起作用但是: ROBOCOPY "c:\folder1" c:\folder2文件确实如此。我希望这是一个文本转义的东西 (2认同)

小智 20

根据维基百科关于 Robocopy 的文章

文件夹复印机,不是文件复印机

Robocopy 语法与标准复制命令明显不同,因为它只接受文件夹名称作为其源和目标参数。文件名和通配符(例如*.*不是有效的源或目标参数。可以使用可选的 filespec 过滤参数来选择或排除文件。Filespecs 只能引用与已选择进行复制的文件夹相关的文件名。不支持完全限定的路径名​​。

例如,为了将文件foo.txt从目录复制c:\barc:\baz,可以使用以下语法:

robocopy c:\bar c:\baz foo.txt
Run Code Online (Sandbox Code Playgroud)

  • 我注意到的一件事。如果 C:\bar 中有任何文件夹并且已添加选项 /e。它将重新创建所有文件夹,其中没有文件。我猜因为 foo.txt 就像一个过滤器,在这些文件夹中找不到任何文件,而你保留了空文件夹。这就是创建空文件夹的原因。 (2认同)