码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-05-16 16:41:36      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:echo   结束   统计   sms   color   done   token   goto   报错   

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

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

for /f "tokens=* delims=" %%a in (dir /s/b "D:\test1" ) do (
      xcopy "%%a" "D:\test" /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

 

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

标签:echo   结束   统计   sms   color   done   token   goto   报错   

原文地址:https://www.cnblogs.com/BackingStar/p/12900857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!