有任何方法可以CLS一个单行输出吗?我不认为CLS有任何开关,所以也许更好的问题是:
有没有办法
我只是想通过实时反馈/信息来使我的脚本更方便用户,而不是多行稍加改动。不过,我唯一能想到的办法是这样做:
@echo off
goto Prep
:Prep
SET count=5
SET genericMessage=This window will close
goto Output
:Output
IF NOT %count% == -1 (
cls
IF %count% == 0 (
echo %genericMessage% now.
) ELSE (
echo %genericMessage% in %count% seconds.
)
SET /A count=%count% - 1
ping localhost -n 2 >nul
goto Output
) ELSE (
exit
)所以,你明白了:

但是,这方面的问题是,当我只想通过擦除和重新输出来刷新一行时,CLS会擦除所有的输出。
有人有什么想法吗?
发布于 2012-08-15 16:00:36
不幸的是,没有任何本机命令或实用程序可以在Windows命令行控制台中重新定位游标。
您将需要一个第三方实用程序。
Aacini在DOSTips上发布了一个免费的DOSTips实用程序。CurorPos.exe“源”给出了十六进制数字。要使用源,您将需要HexToBin.bat“编译器”。
浏览两个线程,您会发现一些实用程序,您可能会发现有用的。
发布于 2013-03-05 16:31:55
如果您只需要在一行中移动光标(如您的示例),
这是有可能的马车返回字符。
@echo off
setlocal EnableDelayedExpansion
for /f %%a in ('copy /Z "%~f0" nul') do set "CR=%%a"
for /L %%n in (5 -1 1) do (
<nul set /P "=This window will close in %%n seconds!CR!"
ping -n 2 localhost > nul
)发布于 2012-08-15 15:29:05
尝试ANSI序列:http://www.robvanderwoude.com/ansi.php
通过挖掘链接,http://batch.xoo.it/t2238-BG-exe-Utility-for-Batch-Games.htm看起来是最有希望的。
此页面听起来似乎对控制/设置控制台大小(以及其他显示和缓冲区大小设置)进行了有益的讨论。-size-console-window-can-runas-inherit-console-props-t1468842.html
https://stackoverflow.com/questions/11972249
复制相似问题