批处理显示进度条
我想让批处理显示进度条,但每进度条向前前进1格,就要CLS一次,把上面的内容全部清空了。有没有不用全部清空来做批处理进度条的?T_T像这样:---------------...
我想让批处理显示进度条,但每进度条向前前进1格,就要CLS一次,把上面的内容全部清空了。有没有不用全部清空来做批处理进度条的? T_T 像这样: ----------------------------- >--------------------------- >>------------------------- ...(省略) >>>>>>>>>>>>>>>
超,行被吃.. 这样----------------------------- 然后>--------------------------- ...(省略) 再这样 >>>>>>>>>>>>>>> 展开
超,行被吃.. 这样----------------------------- 然后>--------------------------- ...(省略) 再这样 >>>>>>>>>>>>>>> 展开
2个回答
展开全部
set /p=^><nul
更多追问追答
追问
这样也太快了吧,能不能暂停0.1秒再继续?
追答
ping 5.2 -w 100 -n 1 >nul 2>nul&set /p=^><nul 换行被吞了,你可以把&换成换行...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先来个简单的,10个">>>>>>>>>>"的做法
-------------------------------------------------------------------------
@echo off
setlocal ENABLEDELAYEDEXPANSION
set d=10
:begin
cls
set a=">>>>>>>>>>"
set b=----------
set /a c+=1
set /a d-=1
set /a z+=10
echo (!a:~1,%c%!!b:~0,%d%!)%z%%%
ping /n 2 127.1>nul
if not %c%==10 goto begin
pause
-----------------------------------------------------------------------------------
-------------------------------------------------------------------------
@echo off
setlocal ENABLEDELAYEDEXPANSION
set d=10
:begin
cls
set a=">>>>>>>>>>"
set b=----------
set /a c+=1
set /a d-=1
set /a z+=10
echo (!a:~1,%c%!!b:~0,%d%!)%z%%%
ping /n 2 127.1>nul
if not %c%==10 goto begin
pause
-----------------------------------------------------------------------------------
追问
看题,不清空!
追答
不清空是不可能滴,批处理执行的结果一行显示一个,由于进度条不是由一个dos的外部程序直接生成出来,而是靠人手编写多个命令而做出的模拟效果,因此做进度条不清空时,进度条就不会有你所说的(这样----------------------------- 然后>--------------------------- ...(省略) 再这样 >>>>>>>>>>>>>>>),而是逐行显示。
若要保留前面的内容,只要把前面的内容每次清空后都重新加上就可以了,由于批处理执行速度特别快,看不出被清空的感觉。
你可以用以下代码感受一下
-----------------------------------------------------------------------------------
@echo off
setlocal ENABLEDELAYEDEXPANSION
set d=10
:begin
cls
echo 这是一个进度条画面模拟程序。
echo.
echo 正在读取中...
echo.
set a=">>>>>>>>>>"
set b=----------
set /a c+=1
set /a d-=1
set /a z+=10
echo (!a:~1,%c%!!b:~0,%d%!)%z%%%
echo.&echo.&echo.
echo 可以看出,以上所有文字都没有被清屏,只有偶尔的闪烁。
echo.
ping /n 2 127.1>nul
if not %c%==10 goto begin
pause
-----------------------------------------------------------------------------------
若前面要显示的东西太长,你可以制作另一个批处理作调用
====================================================
@echo off
setlocal ENABLEDELAYEDEXPANSION
set d=10
:begin
cls
echo 这是一个进度条画面模拟程序。
echo.
echo 1111
echo 2222
start /wait 2.bat
echo.
echo 演示完毕
pause>nul
----------------------------------------------------------------------------
把以上这段代码保存为1.bat
================================================
@echo off
title 正在显示进度条动画...
mode con cols=50 lines=15
setlocal ENABLEDELAYEDEXPANSION
set d=10
:begin
cls
echo.&echo.&echo.&echo.&echo.&
set a=">>>>>>>>>>"
set b=----------
set /a c+=1
set /a d-=1
set /a z+=10
echo (!a:~1,%c%!!b:~0,%d%!)%z%%%
ping /n 2 127.1>nul
if not %c%==10 goto begin
ping /n 2 127.1>nul
exit
---------------------------------------------------------------------------
把以上这段代码保存为2.bat。
运行"1.bat"查看效果吧.......
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询