平时复制文件的时候,都有一个窗口显示复制的百分比。。。
窗口里面有进度条显示,还有剩余的时间。。。
以前尝试过写这个功能,不过最终以失败告终。。。
原因是无论是copy还是xcopy,其复制时,即使未完成,显示的文件大小都是不变的。。。
以前也有试过用type,先不考虑文件是否完整,其速度实在让人吐血。。。
网上搜索了相关的资料,未果。。。
注意,进度条显示的是已复制和欲复制的百分比。。。
如果完成的话,剩余时间的显示也不成问题了。。。
然后就是复制一个文件夹时,当前复制的文件有一个进度条,整个的进度也有一个进度条。。。
可能会难很多。。。
希望众高人一起看下,个人觉得实在有难度。。。
PS:第三方免了。。。
目前进度:
1、实现单文件复制
2、实现基本进度条及百分比显示
调用方法:
CopyX.bat 源路径 新路径
CopyX代码(可从附件下载):- @echo off
- :: Made By Defanive
- setlocal enabledelayedexpansion
- mode con: cols=26 lines=3
- title 复制中,请稍候
- color 71
- del /f /q Copy._tmp 2>nul
- cls
- mshta vbscript:createobject("wscript.shell").run("Cmd /c Copy /z "+""""+"%~1"+""""+" "+""""+"%~2"+""""+" >"+""""+"%~dp0\Copy._tmp"+"""",0)(window.close)
- set "bar=>>>>>>>>>>>>>>>>>>>>--------------------"
- echo 复制中,请稍候
- :ready
- if not exist Copy._tmp goto ready
- :copying
- for /f "tokens=*" %%a in ('type Copy._tmp') do (
- set "str=%%a"
- if "!str:~-4!"=="已复制 " (
- set /a "per=!str:~-9,3!"
- set /a "pt=20-per/5"
- call set "barn=%%bar:~!pt!,20%%"
- set /p=!barn! !per!%%<nul
- goto copying
- )
- )
- cls
- del /f /q Copy._tmp 2>nul
- title 复制完成!
- cls
- echo.
- echo 复制完成!
- ping -n 2 127.0.0.1>nul
- exit
复制代码 链接: https://pan.baidu.com/s/1hluuahxtZz7azrLT1CwO7g?pwd=m5q8 |