Batch file 批处理脚本编程——有没有办法更改要回显的行?

Batch file 批处理脚本编程——有没有办法更改要回显的行?,batch-file,command,echo,goto,Batch File,Command,Echo,Goto,基本上,我有一个部分需要循环,直到用户提供有效的输入,但是如果他们持续提供无效的输入,而我只是不断要求设置/p MYVAR=“Selection?”它每次都在新行上打印,导致滚动 我宁愿做: :SELECTION SET /P MYVAR="Selection? " IF ERROR HERE ( //I realize this is pseudo code for the error check ECHO MAKE A VALID SELECTION... MOVE UP

基本上,我有一个部分需要循环,直到用户提供有效的输入,但是如果他们持续提供无效的输入,而我只是不断要求设置/p MYVAR=“Selection?”它每次都在新行上打印,导致滚动

我宁愿做:

:SELECTION
SET /P MYVAR="Selection? "

IF ERROR HERE ( //I realize this is pseudo code for the error check
    ECHO MAKE A VALID SELECTION...
    MOVE UP 2 ROWS?
    GOTO :SELECTION
)
如果这是兼容终端,您可以执行以下操作:

ECHO <CSI>[2A
:SELECTION
SET /P MYVAR="Selection? "

IF ERROR HERE ( //I realize this is pseudo code for the error check
    ECHO MAKE A VALID SELECTION...
    MOVE UP 2 ROWS?
    cls
    GOTO :SELECTION
)

您可以使用
cls
清除屏幕并重新编写,如下所示:

ECHO <CSI>[2A
:SELECTION
SET /P MYVAR="Selection? "

IF ERROR HERE ( //I realize this is pseudo code for the error check
    ECHO MAKE A VALID SELECTION...
    MOVE UP 2 ROWS?
    cls
    GOTO :SELECTION
)

这样,如果用户输入无效,用户只会不断看到“选择”。

这主意不错,但Windows不再支持这一点