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

在这种情况下,光标会等待用户命令,但它会在其他地方闪烁,而不是在单词 main menu 的字母“U”旁边

问题 - 如何使光标在单词 menu 旁边的“U”后闪烁?

先感谢您 !

4

1 回答 1

7

ECHO 命令在您的输出末尾发出一个新行,因此暂停闪烁光标出现在下一行。

您可以使用 SET /P 打印您的提示而无需换行以获得您想要的结果。

<nul set/p"=Please, press any key to return to main menu"
pause>nul

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

于 2012-08-26T15:51:09.317 回答