Batch file 批次:加载条赢得';行不通

Batch file 批次:加载条赢得';行不通,batch-file,cmd,loading,Batch File,Cmd,Loading,我有一个基本的加载杆做了,但我想不出如何让一边不与加载杆移动。这是我的密码: @echo off title Loading... color 0a set max=11 set num=%~1 set load= set/a loadnum=0 :Loading set load=%load%² set loadnum1=%loadnum1% cls echo Loading "" echo

我有一个基本的加载杆做了,但我想不出如何让一边不与加载杆移动。这是我的密码:

@echo off
title Loading... 
color 0a
set max=11
set num=%~1
set load=
set/a loadnum=0
:Loading
set load=%load%²
set loadnum1=%loadnum1%
cls
echo                                           Loading ""
echo                                         ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                                         º%load%%loadnum1%           º
echo                                         ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ping localhost -n 2 >nul
set/a loadnum=%loadnum% +1
set/a loadnum1=%loadnum1% -1
if %loadnum%==16 goto done
goto Loading
:done
cls
timeout 1 >nul
title
color 49
setlocal enabledelayedexpansion

您需要的是可变数量的尾随空格。或多或少地保留着你所拥有的。。。这里有一种方法

@echo off
setlocal enabledelayedexpansion
title Loading... 
color 0a
set max=19
set load=
set /a loadnum=0
set /a loadnum1=0
set "spaces=                    "
:Loading
set load=%load%²
set /a numspaces=%max%-1+%loadnum1%
set "displayspaces=!spaces:~0,%numspaces%!
set loadnum1=%loadnum1%
cls
echo                                           Loading ""
echo                                         ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                                         º%load%%displayspaces%º
echo                                         ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ping localhost -n 2 >nul
set /a loadnum+=1
set /a loadnum1+=-1
if %loadnum% LSS %max% goto :Loading
endlocal

在这种解决方案中更容易修改加载条的宽度,只改变一个数字;它还可以最小化屏幕上的闪烁,将输出命令封装在一个代码块中,该代码块的执行速度比单个行快

@echo off
setlocal EnableDelayedExpansion

set max=16

title Loading... 
color 0a
set "top=É"
set "spaces="
set "bottom=È"
for /L %%i in (1,1,%max%) do (
   set "top=!top!Í"
   set "spaces=!spaces! "
   set "bottom=!bottom!Í"
)
set "top=!top!»"
set "bottom=!bottom!¼"

set /A loadnum=0, loadNum1=max-1
set "load="

:Loading
set "load=%load%²"
(
cls
echo                                           Loading ""
echo                                         %top%
echo                                         º%load%!spaces:~0,%loadnum1%!º
echo                                         %bottom%
)
ping localhost -n 2 >nul
set /A loadnum+=1, loadnum1-=1
if %loadnum% lss %max% goto Loading

cls
timeout 1 >nul
title
color

您所说的“侧面不随加载杆移动”是什么意思?你能解释一下你看到了什么,你想看到什么吗?我的意思是:º或连接菜单顶部和底部的线与代表条的字符一起移动。请注意,
DOS
是80年代到90年代的操作系统!请改用标记窗口。最初我有一个FOR循环来计算尾随空格的数量。我把它处理掉了。谢谢。我大概知道该怎么办了。它不在这里,但我创建了一个变量(%spaces%),它与您的%displayspaces%并行,但我不知道如何调节它们之间的空格。再次感谢你的帮助。