标题: [代码合集] 关于进度条的问题 [打印本页]
作者: wchong 时间: 2018-2-3 22:33 标题: 关于进度条的问题
我在本论坛拷贝的一段进度条的批处理,
@echo off
::hnfeng@2012-04-12
title 进度条效果演示
cd /d "%~dp0"&color 3E&mode con cols=80 lines=13
set a1=▏&set a2=▎&set a3=▍&set a4=▌&set a5=▋&set a6=▊&set a7=▉&set a8=█
set n=0&set bar=&set x=0
:BAR
if %n%.==1. set bar=%bar%%a1%&goto BAR2
if not %n%.==0. call;set bar=%bar:~,-1%%%a%n%%%
:BAR2
cls&echo.&echo.&echo 正在合并映像文件到硬盘,不可关闭此窗口,请耐心等待.........
echo.&echo 已经完成:%p% %%%
echo ┌-------------------------------------------------------------------┐
if not "%bar%".=="". echo %bar%&echo %bar%&echo %bar%
echo └-------------------------------------------------------------------┘
ping 127.1 -n 1 >nul
if %n%.==8. (set n=1&set /a x=%x%+1
if %x%==33 goto END) else (set /a n=%n%+1)
set /a p=(%n%+8*%x%)*100/272
goto BAR
:END
echo.&echo 完成...... &pause>nul
我有一个合并SWM镜像到分区的命令
for %%a in (C D E F G H I J K L M N P U V S Y Z) do if exist "%%~a:\install.swm" set "swm=%%~a:"
imagex /export %swm%\install.swm * /ref %swm%\*.swm R:\OKRBackup\Factory\install.wim
想用上面的进度条显示合并swm镜像的进度,不知道要怎么添加,求大师帮忙
作者: 慕夜蓝化 时间: 2018-2-5 09:48
- 一般来讲,这个东西用多线程实现起来比较好些。
- 但也是不好估算时间。
- 批处理因为没有多线程这个概念,只能在某一条语句执行完毕后再执行下一句。
- 因此,通常的做法是,在工作完成以后,你添加一个过场动画,具体你可以这样来做。
- 将 上面的代码 单独保存为一个test.bat
- 然后通过call 语句,来直接调用。
- 大概可以这样。
- set/a a=1
- if %a% equ 1 echo,1&call test.bat&执行完成。
- 你看着在你的批代码中替换一下。
复制代码
- 这是Java中的一段代码,你可以参考下。
- public class BRDemo9 {
- public static void main(String args[]){
- Thread t1 = new Thread(() -> {
- for(int i = 0;i < 3;i++){
- Jutil.sleep(2000);
- }
- });
- t1.start();
- System.out.printf("——>");
- while(t1.isAlive()){
- System.out.print(">");
- Jutil.sleep(100);
- }
- }
- }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |