批处理文件中使用echo命令后是否可能出现闪烁的光标?

3
我希望我的光标在运行批处理的特定部分闪烁。
@echo off

REM some code goes here ... 

setlocal
for /f %%A in ('"prompt $H & echo on & for %%B in (1) do rem"') do set "BS=%%A"
set /p Menu=%BS%  Please inform your option {1,2,3} followed by ENTER:

请注意,使用SET /P命令时,光标符号"_"将在单词“ENTER”前面闪烁,并紧挨着冒号符号":",等待用户输入,如ENTER:_。
然而,在我的代码后面,我有以下内容:
REM some code goes also here ...
echo:
echo Please, press any key to return to main menu
pause>nul
Call Begin

在这种情况下,光标等待用户命令,但是它在远离单词“主菜单”中字母“U”的地方闪烁,而不是在其旁边。
问题 - 如何使光标在单词“菜单”旁边的“U”后面闪烁?
谢谢!

您不必在标题中加入[SOLVED],将答案标记为已接受即可。请查看此Meta SO帖子以获取更多信息:http://meta.stackexchange.com/q/116101/175248。 - Makoto
1个回答

8
ECHO命令会在输出末尾添加一个新行,因此暂停闪烁光标会出现在下一行。您可以使用SET /P来打印提示符而不换行,以获得所需的结果。
<nul set/p"=Please, press any key to return to main menu"
pause>nul

顺便说一下,您可能不应使用CALL返回到主菜单。连续发出的CALL数量是有限制的。我怀疑您的主菜单已经在调用一个例程或批处理文件。您的主菜单应该在GOTO循环中,并且每个选项都应该CALL一个批处理或例程。然后,被调用的例程可以简单地使用EXIT /B返回到主菜单。


非常感谢您再次作出的巨大贡献。此致敬礼。 - Luiz Vaughan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接