我正在尝试使用robocopy将单个文件从一个位置传输到另一个位置,但是robocopy似乎认为我一直在指定文件夹。这是一个示例:

robocopy "c:\transfer_this.txt" "z:\transferred.txt"


但是我却收到此错误:

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


(请注意\transfer_this.txt的结尾处)

但是如果我将其视为一个完整的文件夹:

robocopy "c:\folder" "z:\folder"


它可以工作,但随后我必须转移所有内容

如何仅使用robocopy传输单个文件?

评论

def copyFile(fromLocation,toLocation,big = False):打印(如果从大到大,则将文件从“ + fromLocation +复制到” + toLocation):iFind = fromLocation.rfind('\\')fromLocation1 = fromLocation [:(iFind + 1)] fileName = fromLocation [iFind + 1:] toLocation1 = toLocation [:( toLocation.rfind('\\')+ 1)] strcmd =“ robocopy” + fromLocation1 +“” + toLocation1 +“” + fileName print(strcmd) os.system(strcmd)else:shutil.copy2(fromLocation,toLocation)

#1 楼

请参阅:Robocopy /?


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


robocopy c:\folder d:\folder transfer_this.txt


评论


首先,至少在win2003上:引用目录路径似乎使它有些打.。

–令人难以置信的莫妮卡复原
2013年9月15日19:52

@samsmith我在收尾引号前有一个\时看到它打了h(即:ROBOCOPY“ c:\ folder1 \” c:\ folder2文件不起作用,但是:ROBOCOPY“ c:\ folder1” c:\ folder2文件。我希望这是文本转义的东西

–迈克·戈特利(Mike Goatly)
2015年10月23日在7:22

@MikeGoatly非常好。 Robocopy不喜欢尾随\。它希望您将目录命名为“名称”,并且不希望以任何方式暗示它接受目录以外的任何内容。

–令人难以置信的莫妮卡复原
2015年10月23日在16:26

#2 楼

根据Wikipedia关于Robocopy的文章:




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

Robocopy语法与标准副本明显不同命令,因为它仅接受文件夹名称作为其源和目标参数。文件名和通配符(例如*.*)不是有效的源或目标参数。可以使用可选的filespec过滤参数选择或排除文件。文件规范只能引用相对于已选择要复制的文件夹的文件名。不支持完全限定的路径名​​。例如,要将文件foo.txt从目录c:\bar复制到c:\baz,可以使用以下语法:

robocopy c:\bar c:\baz foo.txt





评论


我注意到的一件事。如果C:\ bar中有任何文件夹,并且已添加选项/ e。它将重新创建所有没有文件的文件夹。我猜因为foo.txt就像一个过滤器,在那些文件夹和保持空文件夹中找不到任何文件。这就是为什么创建空文件夹的原因。

–唐尼五世
17年8月2日在20:02

#3 楼

尝试在目标位置之前插入一个空格,如下所示:

robocopy "c:\transfer_this.txt" "z: \this.txt" 


注意目标“文件夹” 之后的空间z:

评论


这对我不起作用,我必须遵循@KPWINC的说明并将文件名保留在源路径之外。

–进水
2015年11月25日,0:17

这是一个巨魔的答案吗?尝试过并且不起作用(似乎也不起作用)。

–起搏器
16年5月4日在4:24

#4 楼

robocopy Q:\ F:\ Dopbox“ Microsoft Office.zip” / MT:128

评论


Robocopy源目标文件名

–戴尔
16年4月4日在10:34

没有解释的命令不是有用的答案。

–卡巴斯德
16年4月4日在12:31