批量加速 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
所以我正在尝试从我的应用程序复制数据备份。我在下面编写了批处理脚本来执行此操作,但该脚本需要永远 运行。
我在凌晨 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