我试图将一个完整驱动器(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
时出现的情况
如您所见,source定义为d:\ temp。这是批处理文件所在的位置,但在批处理文件中我将其定义为D:。出于某种原因,目的地是正确定义的。
有什么想法吗?
-al
编辑:如果我添加' /'到源位置和目的地位置,看下面的代码,我看到更奇怪的行为(见截图)。源现在既是定义的源也是目的地组合,没有目的地。
@echo off
echo To begin backing up data:
pause
robocopy "D:\" "K:\" /L /v
echo.
pause
exit
而且,如果我删除""来自源头和目的地.... IT工作!
@echo off
echo To begin backing up data:
pause
robocopy D:\ K:\ /L /v
echo.
pause
exit
答案 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不能真正告诉您发生了什么,但是我所有的备份脚本都将其考虑在内。
祝你好运!