[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

批处理复制进度条

平时复制文件的时候,都有一个窗口显示复制的百分比。。。
窗口里面有进度条显示,还有剩余的时间。。。
以前尝试过写这个功能,不过最终以失败告终。。。
原因是无论是copy还是xcopy,其复制时,即使未完成,显示的文件大小都是不变的。。。
以前也有试过用type,先不考虑文件是否完整,其速度实在让人吐血。。。
网上搜索了相关的资料,未果。。。
注意,进度条显示的是已复制和欲复制的百分比。。。
如果完成的话,剩余时间的显示也不成问题了。。。
然后就是复制一个文件夹时,当前复制的文件有一个进度条,整个的进度也有一个进度条。。。
可能会难很多。。。
希望众高人一起看下,个人觉得实在有难度。。。
PS:第三方免了。。。


目前进度:

1、实现单文件复制
2、实现基本进度条及百分比显示

调用方法:
CopyX.bat 源路径 新路径

CopyX代码(可从附件下载):
  1. @echo off
  2. :: Made By Defanive
  3. setlocal enabledelayedexpansion
  4. mode con: cols=26 lines=3
  5. title 复制中,请稍候
  6. color 71
  7. del /f /q Copy._tmp 2>nul
  8. cls
  9. mshta vbscript:createobject("wscript.shell").run("Cmd /c Copy /z "+""""+"%~1"+""""+" "+""""+"%~2"+""""+" >"+""""+"%~dp0\Copy._tmp"+"""",0)(window.close)
  10. set "bar=>>>>>>>>>>>>>>>>>>>>--------------------"
  11. echo 复制中,请稍候
  12. :ready
  13. if not exist Copy._tmp goto ready
  14. :copying
  15. for /f "tokens=*" %%a in ('type Copy._tmp') do (
  16. set "str=%%a"
  17. if "!str:~-4!"=="已复制 " (
  18. set /a "per=!str:~-9,3!"
  19. set /a "pt=20-per/5"
  20. call set "barn=%%bar:~!pt!,20%%"
  21. set /p=!barn! !per!%%<nul
  22. goto copying
  23. )
  24. )
  25. cls
  26. del /f /q Copy._tmp 2>nul
  27. title 复制完成!
  28. cls
  29. echo.
  30. echo 复制完成!
  31. ping -n 2 127.0.0.1>nul
  32. exit
复制代码
链接: https://pan.baidu.com/s/1hluuahxtZz7azrLT1CwO7g?pwd=m5q8
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

如果能得到复制时的大小,也就能算出百分比了。。。

至于前辈们的尝试,我还没有找到相关的资料。。。
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

9L强大。。。
那么,现在进度条如何处理?
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

报告进度:
通过Copy /Z功能已实现基本进度条和百分比显示,目前只支持单文件
代码及下载在主楼
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

12L,代码强大。。。
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

返回列表