批量复制指定目录下的文件,并统计执行时间

Posted backingstar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量复制指定目录下的文件,并统计执行时间相关的知识,希望对你有一定的参考价值。

   该脚本用于将指定目录下的文件 复制到指定的目录,可指定复制的次数,并统计消耗的时间。 比如想要大批量制造很多文件。

遇到的问题是:如果for循环中,文件名有空格,则会报错:“找不到指定的文件”,那么可以在for循环中添加:"tokens=* delims="  ,并且复制的文件需要加引号,这样复制文件就没问题了。

for /f "tokens=* delims=" %%a in (dir /s/b "D:	est1" ) do (
      xcopy "%%a" "D:	est" /e /c /y /h 
)

全部代码如下:

@echo off
REM #############
REM 批量复制指定目录下的所有文件,并统计执行时间的脚本
REM 1输入源文件路径
REM 2输入目标路径
REM 3输入复制次数
REM 4确认输入信息
REM ##############

echo *******批量复制文件脚本********

:again_input
set /p sour=输入源文件路径:
set /p dest=输入目标文件路径:
set /p coun=输入复制次数:


:again_yn
set /p yn=是否确认输入信息 Y/N:
if %yn% ==y goto cont_copy
if %yn% ==Y goto cont_copy
if %yn% ==n goto again_input
if %yn% ==N goto again_input
echo  输入错误,重新输入!
goto again_yn

:cont_copy
echo ***************
echo 正在创建文件,请稍等...
echo ***************
set firTime=%time%
set /a done =1

:loop
set /a left = %coun% - %done%
echo 第%done%/%coun%次循环.....

REM ****************创建复制文件循环体***********
set destpath=%dest%\%done%
for /f "tokens=* delims=" %%a in (dir /s/b "%sour%" ) do (
      if not exist  %destpath% (
           MD %destpath%
      )
      xcopy "%%a" "%destpath%" /e /c /y /h 
)
REM ****************创建次数循环体***************
if %done%==%coun% goto loop_end
set /a done = %done% +1
goto loop
:loop_end

set secTime=%time%
echo ***************
echo 创建完成...
echo ***************

SET /a fhr=%firTime:~0,2%
SET /a fmi=%firTime:~3,2%
SET /a fse=%firTime:~6,2%
SET /a fms=%firTime:~9%

SET /a shr=%secTime:~0,2%
SET /a smi=%secTime:~3,2%
SET /a sse=%secTime:~6,2%
SET /a sms=%secTime:~9%

set /a hours=%shr%-%fhr%
set /a mins=%smi%-%fmi%
set /a secs=%sse%-%fse%
set /a ms=%sms%-%fms%

if %ms% lss 0 set /a secs = %secs% - 1 & set /a ms = 100%ms%
if %secs% lss 0 set /a mins = %mins% - 1 & set /a secs = 60%secs%
if %mins% lss 0 set /a hours = %hours% - 1 & set /a mins = 60%mins%
if %hours% lss 0 set /a hours = 24%hours%
if 1%ms% lss 100 set ms=0%ms%

echo **********************
echo 开始时间[%firTime%]
echo 结束时间[%secTime%]
echo 消耗时间[%hours%:%mins%:%secs%:%ms%]
echo **********************

PAUSE

 

以上是关于批量复制指定目录下的文件,并统计执行时间的主要内容,如果未能解决你的问题,请参考以下文章

用bat复制指定文件到指定文件目录下的所有文件夹?

java如何查找指定目录下的最新文件

android中怎么获取指定目录下的文件夹

bat删除指定目录下的所有文件(包括文件夹)、

bat怎么批量复制当前目录下若干指定文件到指定目录

如何用bat打开本身目录下的文件?