批处理文件将文件从一个文件夹复制到另一个文件夹

use*_*628 223 file-io batch-file

我在网络上有一个存储文件夹,所有用户都将其活动数据存储在服务器上.现在由于地方问题,服务器将被新服务器替换,因此我需要将子文件夹文件从旧服务器存储文件夹复制到新服务器存储文件夹.我有以下ex:

从\ Oldeserver\storage\data&files到\ New server\storage\data&files.

lav*_*nio 417

xcopy.exe绝对是你的朋友.它内置于Windows中,因此它的成本一无所获.

只是 xcopy /s c:\source d:\target

你可能想要调整一些东西; 我们还添加了一些选项包括:

  • /s/e - 递归复制,包括复制空目录.
  • /v - 添加此项以验证原件的副本.较慢,但对于偏执狂.
  • /h - 复制系统和隐藏文件.
  • /k - 将只读属性与文件一起复制.否则,所有文件都变为读写.
  • /x- 如果你关心权限,你可能想要/o/x.
  • /y - 在覆盖现有文件之前不要提示.
  • /z - 如果您认为副本可能失败并且您想重新启动它,请使用此方法.它在复制时在每个文件上放置一个标记,因此您可以重新运行xcopy命令以从中断的位置进行拾取.

如果您认为xcopy可能在中途失败(例如当您通过片状网络连接进行复制时),或者您必须停止它并希望以后继续使用,则可以使用xcopy /s/z c:\source d:\target.

希望这可以帮助.

  • 要绕过"文件或目录"提示,请执行命令,如此...`echo f | xcopy/s/f srcfile destfile` (8认同)
  • @Iavinio复制档案时询问文件或目录.有没有办法压制那个? (2认同)
  • `/ i` - 如果目标不存在并复制多个文件,则假定目标必须是目录. (2认同)

Ike*_*Ike 52

为了清楚起见,当你使用时xcopy /s c:\source d:\target,在c:\ source和d:\ target周围放置"",否则你会收到错误.

即如果路径中有空格,即如果您有:

"C:\Some Folder\*.txt"
Run Code Online (Sandbox Code Playgroud)

但如果你有:

C:\SomeFolder\*.txt
Run Code Online (Sandbox Code Playgroud)


Eti*_*uis 47

我最喜欢的备份数据是:

ROBOCOPY "C:\folder" "C:\new_folder" /mir
Run Code Online (Sandbox Code Playgroud)

/ mir用于镜像.您还可以使用/ mov移动文件.它重现完全相同的文件夹.它可以根据需要删除/覆盖文件.对我来说很棒.它比xcopy/copy更快.它也是在Windows中构建的.

资料来源:http://technet.microsoft.com/en-us/library/cc733145.aspx

  • 我支持这个.它真的很快.比xcopy快得多 (2认同)

Joe*_*oey 17

您可能需要查看XCopyRoboCopy,它们是Windows上几乎所有文件复制操作的全面解决方案.

  • RoboCopy似乎比XCopy更好,因为xcopy要求文件或文件夹决策.我无法拒绝.它必须能够全自动工作. (3认同)
  • @Eve作为参考,`echo f | xcopy源目标/ y`将使其自动化.它将所有问题分配为"f"作为响应.它也会传递覆盖请求(我认为f被视为是). (2认同)

win*_*ong 13

绕过'在目标上指定文件名或目录名(F =文件,D =目录)?' 使用xcopy提示,您可以执行以下操作...

echo f | xcopy /f /y srcfile destfile

或者对于我们这些只是复制大型子结构/文件夹:

use/i指定目标必须是一个目录,如果复制多个文件


mar*_*han 7

如果你想不使用绝对路径复制文件,换句话说,相对路径:

不要忘记在路径中写反斜杠而不是斜杠

例子:

copy children-folder\file.something .\other-children-folder
Run Code Online (Sandbox Code Playgroud)

PS:可以使用这些称为“批处理参数”的通配符检索绝对路径

@echo off
echo %%~dp0 is "%~dp0"
echo %%0 is "%0"
echo %%~dpnx0 is "%~dpnx0"
echo %%~f1 is "%~f1"
echo %%~dp0%%~1 is "%~dp0%~1"
Run Code Online (Sandbox Code Playgroud)

在此处查看有关复制的文档:https : //technet.microsoft.com/en-us/library/bb490886.aspx

还有这里的批处理参数文档:https : //www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true