Windows 批量加速Xcopy
因此,我正在尝试从我的应用程序复制数据备份。我编写了下面的批处理脚本来实现这一点,但脚本需要永远运行 我在凌晨1点启动批处理脚本,它在上午8:30仍在运行。这对我来说似乎很奇怪,因为当我在Windows文件资源管理器中手动复制应用程序的备份时,它会根据网络流量在7-15分钟内复制 IWindows 批量加速Xcopy,windows,batch-file,cmd,xcopy,Windows,Batch File,Cmd,Xcopy,因此,我正在尝试从我的应用程序复制数据备份。我编写了下面的批处理脚本来实现这一点,但脚本需要永远运行 我在凌晨1点启动批处理脚本,它在上午8:30仍在运行。这对我来说似乎很奇怪,因为当我在Windows文件资源管理器中手动复制应用程序的备份时,它会根据网络流量在7-15分钟内复制 IREM在%backupcmd%”C:\Program Files\App\App Server\Data\Backups“%drive%\”行中。这是我用来备份数据的批处理脚本的原始行,直到一个月前,它仍然有效地工作
REM
在%backupcmd%”C:\Program Files\App\App Server\Data\Backups“%drive%\”行中。这是我用来备份数据的批处理脚本的原始行,直到一个月前,它仍然有效地工作
因此,我使用/d
尝试了xcopy
命令,因此它只会复制在该日期(当前日期)当天或之后更改的源文件,并且我正在复制的备份在每晚12:01进行,复制备份脚本从凌晨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
测量过程中的时间进行一些测试,该时间可以找到(无需安装,只需使用当前批处理文件文件夹中的7z
提取exe
)
- netsh接口tcp显示全局
- netsh int tcp集启发式已禁用
- netsh int tcp set全局自动调整级别=已禁用
- netsh int ip set全局任务卸载=已禁用
如果您等待的时间足够长,您的脚本是否真的完成了?您确定它没有因为错误或等待用户输入而挂起吗?我已经让脚本运行了24小时,直到下一个计划的脚本运行时间开始,但它仍然没有完成。脚本从不要求用户输入,/c
使得xcopy
在复制时忽略错误。@pHorseSpec它看起来很酷,我来看看这是否加快了复制速度它使复制速度大大加快了!谢谢使用ROBOCOPY与使用约2500个小文件的XCOPY进行了3倍的加速