我在网络上有一个存储文件夹,所有用户都可以在其中将活动数据存储在服务器上。现在由于位置问题,该服务器将被新服务器替换,因此我需要将子文件夹文件从旧服务器存储文件夹复制到新服务器存储文件夹。我有以下ex:
从\ Oldeserver \ storage \ data和文件到\ New server \ storage \ data和文件。
我在网络上有一个存储文件夹,所有用户都可以在其中将活动数据存储在服务器上。现在由于位置问题,该服务器将被新服务器替换,因此我需要将子文件夹文件从旧服务器存储文件夹复制到新服务器存储文件夹。我有以下ex:
从\ Oldeserver \ storage \ data和文件到\ New server \ storage \ data和文件。
Answers:
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
。
希望这可以帮助。
/i
-如果目标不存在并且复制多个文件,则假定目标必须是目录。
echo f | xcopy /s /f srcfile destfile
请注意,使用时 xcopy /s c:\source d:\target
,请将“”放在c:\ source和d:\ target周围,否则会出错。
即路径中是否有空格,即如果您有:
"C:\Some Folder\*.txt"
但如果您具有以下条件,则不需要:
C:\SomeFolder\*.txt
echo f | xcopy source destination /y
将使其自动运行。它将所有问题分配为“ f”作为响应。它还将传递覆盖请求(我认为f被认为是)。
要绕过“在目标上指定文件名或目录名(F =文件,D =目录)?” xcopy提示时,您可以执行以下操作...
echo f | xcopy /f /y srcfile destfile
或仅复制大型子结构/文件夹:
如果复制多个文件,请使用/ i来指定目标位置必须是目录
如果要复制的文件不使用绝对路径,则使用相对路径,换句话说:
别忘了在路径中写反斜线并且不要斜线
例如:
copy children-folder\file.something .\other-children-folder
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"
在此处查看有关副本的文档:https : //technet.microsoft.com/zh-cn/library/bb490886.aspx
以及此处的批处理参数文档:https : //www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true
@echo off
rem The * at the end of the destination file is to avoid File/Directory Internal Question.
rem You can do this for each especific file. (Make sure you already have permissions to the path)
xcopy /Y "\\Oldeserver\storage\data\MyFile01.txt" "\\New server\storage\data\MyFile01.txt"*
pause
rem You can use "copy" instead of "xcopy "for this example.