Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批量加速Xcopy_Windows_Batch File_Cmd_Xcopy - Fatal编程技术网

Windows 批量加速Xcopy

Windows 批量加速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%\”行中。这是我用来备份数据的批处理脚本的原始行,直到一个月前,它仍然有效地工作

因此,我正在尝试从我的应用程序复制数据备份。我编写了下面的批处理脚本来实现这一点,但脚本需要永远运行

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

I
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倍的加速