为什么 XCOPY 不能与我的脚本一起工作?

为什么 XCOPY 不能与我的脚本一起工作?

我正在制作一个简单的工具,用于备份我的一些游戏的保存文件。有些游戏在一个文件夹中有多个文件,我想将目标文件夹复制到一个新位置并使用新名称,但我无法让它正常工作。我可以使用 和 对单个文件执行此操作COPYXCOPY但对文件夹似乎不起作用。以下是我正在处理的内容:

XCOPY "%USERPROFILE%\EA Games\Dead Space" ".\Save Backup"
XCOPY "%LOCALAPPDATA%\Visceral\Dead Space" ".\Settings Backup"

我曾使用过类似SS64 文档但这些命令都不起作用。我使用过/s/t其他命令,但它们什么也没做。如何将文件夹复制到新位置在新位置重命名。

答案1

如何将文件夹复制到新位置并在新位置重命名?

我会尝试包括/E/I/Y选项,例如:

XCOPY /E /I /Y "%USERPROFILE%\EA Games\Dead Space" ".\Save Backup"
XCOPY /E /I /Y "%LOCALAPPDATA%\Visceral\Dead Space" ".\Settings Backup"

为了(从SS64):

  • /E复制文件夹和子文件夹,包括空文件夹(如果没有保存或设置文件)。

  • /I指示XCOPY始终假定目标是一个文件夹(当目标不存在时这很有用)。

  • /Y抑制任何确认覆盖文件的提示(如果您要覆盖现有文件/文件夹则很有用)。

您可能还想考虑/C,即使发生错误,它也会继续复制。由于您表示您已经尝试了“其他”XCOPY选项,如果您遇到(或曾经遇到)这些特定选项的问题,您可能希望包含额外的详细信息。

顺便提一下,正如评论中所建议的那样,我将验证您要复制的文件的实际位置。目前,《死亡空间》的 PC 游戏 Wiki列出了这些%USERPROFILE%\Documents\Electronic Arts\Dead Space保存和%LOCALAPPDATA%\Electronic Arts\Dead Space\设置。因此:

XCOPY /E /I /Y "%USERPROFILE%\Documents\Electronic Arts\Dead Space" ".\Save Backup"
XCOPY /E /I /Y "%LOCALAPPDATA%\Electronic Arts\Dead Space" ".\Settings Backup"

答案2

假设你使用的是 Windows Vista 或更高版本,你应该考虑使用Robocopy而不是 XCOPY。语法略有不同,但它是为目录设计的。您的特定用例非常适合 /mir 开关。这样做的好处是您可以获得原始目录的真正镜像副本 - 也就是说,源中不再存在的文件将在目标中删除。它还足够智能,可以跳过自上次运行以来未更改的文件。

你的语法很简单

Robocopy "%LOCALAPPDATA%\Electronic Arts\Dead Space" ".\Settings Backup" /mir
Robocopy "%LOCALAPPDATA%\Visceral\Dead Space" ".\Settings Backup" /mir

相关内容