批处理复制文件使用xcopy

9

我查看了一些互联网上的例子,但我无法使我的(第一个)批处理文件正常工作。我想要自动将我的文件从一个文件夹复制到另一个文件夹,但什么都没有发生。

@echo off
xcopy "C:\source\" "C:\target\" /c /d /i /y
exit

你能看到任何错误吗?

谢谢!

更新:我按照 Bali C 给出的命令执行了,但它仍然不起作用。请参见快照

xcopy C:\folder1 C:\folder2\folder1 /t /e /i /y
xcopy C:\folder1 C:\folder2\ /t /e /i /y

图片:
image

我必须使用CTRL + C来停止它。

附注:我使用的是Win 7操作系统

更新(解决方案): 它起作用了!问题在于我的桌面上有一个名为xcopy.bat的文件,我正在从那里运行命令,因此它执行的是我的桌面上xcopy.bat文件而不是Windows的文件... 我必须将该文件重命名为“myxcopy.bat”:

@echo off
xcopy "C:\source" "C:\target" /c /d /i /y
exit

1
你的批处理文件叫什么名字?从你的截图来看,我猜它叫 XCOPY.BAT。试着将其重命名为其他名称,比如 MyXcopy.bat - aphoria
老实说,我不确定,我尝试了你在截图中尝试的确切命令(来自我的答案的顶部),它立即正常工作。除非你没有这些文件夹的权限? - Bali C
1
是的,如果它被命名为 XCOPY.BAT,那肯定会引起问题。每次在批处理文件中调用 XCOPY 时,您将调用另一个 XCOPY.BAT 实例而不是 XCOPY 命令。 - aphoria
4个回答

8

在测试了大多数开关后,我发现以下方法适用于我:

xcopy C:\folder1 C:\folder2\folder1 /t /e /i /y

这将把文件夹folder1复制到文件夹folder2中。因此,目录树将如下所示:
C:
   Folder1
   Folder2
      Folder1

你能发布你正在使用的确切代码吗?包括文件名? - Bali C
实际上,\S 复制目录和子目录,但排除空目录。 - aphoria
你的答案仍然不正确。\S将复制目录和子目录,_除了_空目录。如果一个目录包含文件/文件夹,它将被复制...如果一个目录不包含文件/文件夹,它将不会被复制。 - aphoria
我尝试了不同的选项组合,但是你自己的电脑上是否成功了呢?我已经更新了我的问题,并附上了xcopy.bat文件的内容。 - remyremy
您正在使用的命令尝试复制一个文件夹。如果您要复制一个文件,需要像我的回答中那样指定文件。您是在复制文件夹还是文件? - Bali C
显示剩余5条评论

5

根据xcopy的帮助文件,我尝试了以下命令,在Win 7系统下完美运行:

xcopy C:\folder1 C:\folder2\folder1 /E /C /I /Q /G /H /R /K /Y /Z /J

最适合将子目录和每个层级的文件传输的方法 - Matthew Young

4
如果要将"\Publish\Appfolder"文件夹中的所有文件(包括任何子文件夹)复制到父级"\Publish\"文件夹中,可以使用以下命令:xcopy src\main\Publish\Appfolder\*.* /s src\main\Publish\。其中开关"/s"能够递归地复制所有子文件夹及其内容。

3

在复制中,您必须指定要复制的文件:

xcopy C:\source\myfile.txt C:\target

如果您想复制所有txt文件,可以使用以下命令:

xcopy C:\source\*.txt C:\target

我尝试了xcopy C:\source*.txt C:\target,但是它没有改变任何东西,光标在下一行闪烁。 - remyremy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接