运行 robocopy 蝙蝠将整个驱动器复制到另一个驱动器。

问题描述 投票:9回答:3

我试图将整个驱动器(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

如你所见,源被定义为d:\temp。这是批处理文件的位置,但在批处理文件中,我把它定义为d:。由于某些原因,目的地的定义是正确的。

有什么办法吗?

-阿尔

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

@echo off

echo To begin backing up data:
pause

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


echo.            
pause
exit

enter image description here

而且,如果我从源和目标位置删除""......它的工作!

@echo off

echo To begin backing up data:
pause

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

enter image description here

windows batch-file windows-7 cmd robocopy
3个回答
11
投票

"D:" 你是 指定 D盘的目录(D:\)但 当前 D目录代替,(D:\temp 在你的例子中)。)

要解决这个问题,只需在您的例子中添加 \ 到源规格(同时也到源规格)。

robocopy d:\ k:\ /L /v                 

2
投票

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


0
投票

我发现,当你把一个路径的源和或目的地的引号后需要一个空格。 如果你有内嵌的空格,你需要引号,因此你需要在路径的最后一个斜线后的空格,例如 "c:\"而不是 "c:\"

不能告诉你那里的robocopy是怎么回事,但我所有的备份脚本都考虑到了这一点。

祝您好运

© www.soinside.com 2019 - 2024. All rights reserved.