所以,我正在制作一个"加载屏幕",并且可能在我的编码中节省一些空间,我想知道你是否可以编辑已输出的行.我可能有一个支架[]作为一个加载阶段,所以可以放一个支架,然后等待,看看用户是否按下C(继续)1-2秒,如果没有进入下一阶段([] [])?我目前有一个脚本,其中[]被设置load为每个阶段,我做CLS,然后echo %LOAD%[].
另外,如果我只想在一行上进行状态更新,例如:
Checking status...
Loading server...
然后
Checking status... OK
Loading server... done
如果你能找到一个?与Batch兼容的角色,你可以获得奖励积分.
您可以省略CLS并在帮助下重新创建整个屏幕set /p,因为set /p不输出换行符,您可以附加文本.
通常set /p用于将文本分配给用户输入的变量,但如果您使用NUL的重定向,则只输出文本.
@echo off
for /L %%n in (1 1 5 ) do (
  <nul set /p ".=[]"
  ping -n 2 localhost > nul
)
echo(
echo The end
您要求的状态更新可以以相同的方式处理,因为它只会向行添加内容.
如果要更改线条的一部分或整行,则需要将光标向后移动或移动到行的开头.
两者都可以使用退格字符或回车符来完成.
这是一个依靠固定屏幕位置的样本
setlocal EnableDelayedExpansion
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"
for /L %%n in (1 1 1000) do (
  <nul set /p ".=%%n!CR!"
)