myt*_*lon 8 console cmd batch-file
有没有办法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
)
Run Code Online (Sandbox Code Playgroud)
所以,你得到这个:

但问题是,当我只想通过擦除并重新输出它来刷新一行时,CLS擦除所有输出.
有人有主意吗?
jeb*_*jeb 15
如果您只需要将光标移动到一行(就像您的样本一样),
则可以使用回车符.
@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
)
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有本地命令或实用程序可以在 Windows 命令行控制台中重新定位光标。
您将需要第 3 方实用程序。
Aacini 在 DOSTips 上发布了免费的 CursorPos.exe 实用程序。CurorPos.exe “源”以十六进制数字形式给出。要使用源代码,您将需要HexToBin.bat“编译器”。
浏览这两个线程,您会发现许多有用的实用程序。
| 归档时间: |
|
| 查看次数: |
22539 次 |
| 最近记录: |