批量加速 Xcopy

Speed Up Xcopy in Batch

所以我正在尝试从我的应用程序复制数据备份。我在下面编写了批处理脚本来执行此操作,但该脚本需要永远 运行。

我在凌晨 1 点启动批处理脚本,它还在 运行宁 8:30am。这对我来说似乎很奇怪,因为当我在 Windows 文件资源管理器中手动复制我的应用程序备份时,它会在 7-15 分钟内完成复制,具体取决于网络流量。

REM %backupcmd% "C:\Program Files\App\App Server\Data\Backups" "%drive%\" 行。那是我用来备份数据的原始批处理脚本行,直到一个月前它仍然有效。

所以我用 /d 尝试了 xcopy 命令,所以它只会复制在该日期(当前日期)或之后更改的源文件,以及我的备份每晚 12:01am 进行复制,复制备份脚本从凌晨 1 点开始。

任何关于如何加快我的 xcopy 速度的建议都将不胜感激。如果您认为我也应该使用 powershell 来完成这项任务,我也愿意接受该选项。

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set yyyy=%ldt:~0,4%
set mm=%ldt:~4,2%
set dd=%ldt:~6,2%

:: variables
set drive=Z:\RootSoft\App\Data Backups
set backupcmd=xcopy /s /c /d /e /h /i /r /y /f /z

echo ### Backing up Backup...
REM %backupcmd% "C:\Program Files\App\App Server\Data\Backups" "%drive%\"
xcopy "C:\Program Files\App\App Server\Data\Backups" "Z:\RootSoft\App\Data Backups" /D:%mm%-%dd%-%yyyy% /s /c /e /h /i /r /y /f /z


:: use below syntax to backup other directories...
:: %backupcmd% "...source directory..." "%drive%\...destination dir..."

echo Backup Complete!
echo %errorlevel%
pause

你可以尝试使用ROBOCOPY/MT开关来加速复制。

你也可以用TimeThis测量during过程做一些测试,可以找到here(不需要安装,只需用[=14提取exe =]在当前批处理文件夹中)

  • netsh 接口 tcp 显示全局

  • netsh int tcp 设置启发式禁用

  • netsh int tcp set global autotuninglevel=disabled
  • netsh int ip set global taskoffload=disabled