运行robocopy bat将整个驱动器复制到另一个驱动器

时间:2014-04-25 20:05:55

标签: windows batch-file windows-7 cmd robocopy

我试图将一个完整驱动器(d :)的简单备份(镜像)运行到另一个驱动器(k :)。我创建了一个.bat文件(' backup.bat')来定义源(d :)和目标(k :)并将此批处理文件放在d驱动器上的文件夹中(d: \ TEMP)。当我双击批处理文件时,它将源定义为d:\ temp,而不是我在批处理文件中定义它; d :.

以下是.bat文件中的文字:

@echo off
echo To begin backing up data:
pause
robocopy "D:" "K:" /L /v                 
echo.
pause
exit

这就是当我双击backup.bat

时出现的情况

enter image description here

如您所见,source定义为d:\ temp。这是批处理文件所在的位置,但在批处理文件中我将其定义为D:。出于某种原因,目的地是正确定义的。

有什么想法吗?

-al

编辑:如果我添加' /'到源位置和目的地位置,看下面的代码,我看到更奇怪的行为(见截图)。源现在既是定义的源也是目的地组合,没有目的地。

@echo off

echo To begin backing up data:
pause

robocopy "D:\" "K:\" /L /v


echo.            
pause
exit

enter image description here

而且,如果我删除""来自源头和目的地.... IT工作!

@echo off

echo To begin backing up data:
pause

robocopy D:\ K:\ /L /v
echo.            
pause
exit

enter image description here

3 个答案:

答案 0 :(得分:7)

"D:"指定D驱动器的{em> root 目录(D:\),但当前 D的目录,(在您的示例中为D:\temp)。

要解决此问题,只需将\添加到源规范(同时添加到dest规范)

robocopy d:\ k:\ /L /v                 

答案 1 :(得分:2)

使用/E选项。 同时通过/copyall检查其他必要/有用的参数,例如/ZB /DCOPY:DAT/?

答案 2 :(得分:0)

我发现当在源和目标的引号中添加路径时,在最后一个斜杠后需要一个空格。如果您有嵌入的空格,则需要引号,因此您需要路径中最后一个斜杠之后的空格,例如“ c:\”而不是“ c:\”

robocopy不能真正告诉您发生了什么,但是我所有的备份脚本都将其考虑在内。

祝你好运!