返回列表 发帖
12# batman
效果很好。刚开始理解错了。呵呵。

TOP

12# batman


怎么在回退后再返回回退前的那行?要不后面的输出都把进度条盖住了。我试了echo.你看一下call两次进度条的效果就明白,求你帮忙解码一下!呵呵,谢谢

TOP

echo,就行。。。
***共同提高***

TOP

18# batman
echo off&setlocal enabledelayedexpansion
mode con cols=55 lines=25
set "tab= "&rem 请将此处空格换成实际的制表符
pause
call :ProcessBar 1 ShowInformation
call :ProcessBar 1 ShowInformation
echo. 你好
echo. 你好
echo. 你好
echo. 你好echo. 你好
echo. 你好
pause>nul
exit
rem p:间隔 i:进度百分比
:ProcessBar
set p=%1
set info=%2
rem 32=倒退3行*10+2
for /l %%a in (1,1,32) do set "k=!k!"
echo     ┏━━━━━━━━━━━━━━━━━━━━┓
echo.
echo     ┗━━━━━━━━━━━━━━━━━━━━┛
echo.                       %info%
rem echo %tab%%k% 2>nul
rem 2>nul屏蔽错误信息      
2>nul echo %tab%%k%
echo.&set /p=     ▉<nul
for /l %%i in (1,1,20) do set/p=▉<nul&ping /n %p% 127.1>nul
echo.
echo.
echo,
echo.
goto :eofCOPY
上面是我试验的程序,输出两个进度条,再在进度条下面输出一些字。可是效果很不如意:

TOP

第二次call前要把k变量清空,不然回退的是6行。。。
***共同提高***

TOP

学到很多,理解深了很多....

TOP

可能是系统不一样吧,我机子上reg query hkcu\environment /v temp的结果并未出现tab符...

TOP

batman的好像没有左右两边的框..

TOP

20# batman
for /l %%i in (1,1,20) do set/p=▉<nul&ping /n %p% 127.1>nulCOPY
请问一下,这个同行输出▉,可以跳转其他行后再返回此行接着同行输出吗?不是从行首开始,而是接着这行其他内容后输出!?

TOP

本帖最后由 batman 于 2011-4-17 18:42 编辑

这样子可以不(注意替换tab):
@echo off&setlocal enabledelayedexpansion
set "tab= "
for /l %%a in (1,1,22) do (
    set "t=!t!"
    if %%a leq 20 set "k=!k!  "
)
for /l %%a in (1,1,80) do set "tg=!tg! "
echo,&echo     ┌────────────────────┐
echo,&echo     └────────────────────┘
echo %tab%%t% 2>nul&set /p=     │<nul
for /l %%a in (1,1,20) do (
    set /a "a=(20-%%a)*2","b=(22-%%a)*6+4",c=%%a00/20
    set "c=  !c!"&set "c=!c:~-3!"
    for %%a in (!a!) do (
        set "str=■!k:~,%%a!!c!%%"
        set /p=!str!<nul
        for /l %%b in (1,1,500) do echo>nul
        if %%a neq 0 for %%a in (!b!) do set /p=!tg:~,%%a!<nul
    )
)
pause>nulCOPY
***共同提高***

TOP

本帖最后由 batman 于 2011-4-17 18:40 编辑

要不就只能这样:
@echo off&setlocal enabledelayedexpansion
set "tab= "
for /l %%a in (1,1,22) do set "t=!t!"
for /l %%a in (1,1,80) do set "tg=!tg! "
echo,&echo     ┌───────────────────┐
echo,&echo     └───────────────────┘
for /l %%a in (1,1,20) do (
    echo %tab%%t% 2>nul&set /p=      <nul
    set /a a=%%a00/20
    set "a=  !a!"&set "a=!a:~-3!"
    for /l %%b in (1,1,%%a) do set /p=■<nul
    for /l %%b in (1,1,1000) do echo>nul
    if %%a neq 20 set /p=%tg%<nul
    echo,&echo,&set /p=                      !a!%%<nul
    for /l %%b in (1,1,1000) do echo>nul
    if %%a neq 20 set /p=%tg%<nul
)
pause>nulCOPY
***共同提高***

TOP

27# batman


谢谢。原来我的想法是不现实的。呵呵。非常感谢

TOP

思维定向,可以做到的(注意替换tab为实际的制表符):
@echo off&setlocal enabledelayedexpansion
set "tab= "
for /l %%a in (1,1,22) do set "t=!t!"
for /l %%a in (1,1,80) do set "tg=!tg! "
echo,&echo     ┌────────────────────┐
echo                                               │
echo     └────────────────────┘
for /l %%a in (1,1,20) do (
    echo %tab%%t% 2>nul&set /p=     │<nul
    set /a a=%%a00/20
    set "a=  !a!"&set "a=!a:~-3!"
    for /l %%b in (1,1,%%a) do set /p=■<nul
    for /l %%b in (1,1,500) do echo>nul
    echo,&echo,&set /p=                      !a!%%<nul
    for /l %%b in (1,1,200) do echo>nul
    if %%a neq 20 set /p=%tg%<nul
)
pause>nulCOPY
***共同提高***

TOP

好看 就是看不懂

TOP

不错,学习了~

TOP

返回列表