xcopy 删除目标文件夹并复制 0 个文件

xcopy 删除目标文件夹并复制 0 个文件

我正在尝试编写一个批处理文件,将本地存储的文件备份到网络驱动器。有些文件夹被成功复制,但其他文件夹没有被复制;相反,执行命令时目标文件夹被删除。

按预期工作(将所有文件复制到目标文件夹):

XCOPY /Y "C:\APPS\lse_jboss-4.2.3.GA-1.1\server\default\deploy\lse_datasources-esl_sourcesdedonnees" "H:\My Documents\RESTORE\Data sources"
XCOPY /Y "%AllUsersProfile%\Desktop" "H:\My Documents\RESTORE\Desktop - Global"
XCOPY /Y "%UserProfile%\Desktop" "H:\My Documents\RESTORE\Desktop - mwa700"
XCOPY /Y "%UserProfile%\Favorites" "H:\My Documents\RESTORE\Favorites"
XCOPY /Y "%UserProfile%\Application Data\Microsoft\Templates" "H:\My Documents\RESTORE\Office templates"

未按预期工作(复制 0 个文件,并删除目标文件夹):

XCOPY /Y "%UserProfile%\java_libraries" "H:\My Documents\RESTORE\java_libraries"
XCOPY /Y "%UserProfile%\workspaces" "H:\My Documents\RESTORE\workspace"

这两个文件夹的内容或属性是否可以解释这种行为?

答案1

是的。默认情况下,xcopy仅复制文件,而不复制目录。因此,如果您的源目录仅包含其他子目录,则不会复制任何内容。要确保您还复制目录,请使用标志/E复制目录和子目录(包括空目录)或/S跳过空目录。

xcopy /Y /E "src" "dest"

/I如果复制多个文件,则也假定目标是一个目录。

xcopy /Y /E /I "src" "dest"

如需更多帮助,请使用

xcopy /?

答案2

我不知道这个答案是否适合您,但我使用 xcopy 命令将 C: 文件夹的所有内容复制到另一个磁盘设备上的备份位置(称为文件夹 E:\A)。复制成功完成后,文件夹 E:\A 从资源管理器中消失了!

通过将 E: 上的设备移动到另一台计算机,我可以看到 xcopy 设置了 E:\A 的 S 和 H(系统和隐藏)属性,导致其消失。这些属性可能正确地从 C:\ 文件夹复制到了 E:\A 文件夹本身。

我使用 attrib 命令恢复了这两个属性,现在一切正常。E:\A 包含从 C: 复制的文件夹和文件。

答案3

尝试对 Documents and Settings 使用 dos 格式的文件名,或者使用 %userprofile% 路径命令变量。

上述两个语句之间的唯一区别是工作脚本中的源中没有空格,而非工作脚本的路径中有空格。

首先使用 %userprofile% 路径命令,它更简单并且受所有 MS 操作系统支持。

相关内容