【问题标题】:Batch Script Programming -- Any way to change the line of where to echo?批处理脚本编程——有什么方法可以改变回显的行吗?
【发布时间】:2012-02-14 07:37:57
【问题描述】:
基本上,我有一个部分需要循环直到用户提供有效输入,但如果他们不断提供无效输入并且我只是不断要求SET /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
)
【问题讨论】:
标签:
batch-file
command
echo
goto
【解决方案1】:
您可以使用cls 清除屏幕并重新重写,如下所示:
: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
)
这样,如果用户输入无效,用户只会不断看到“选择?”。
【解决方案2】:
如果这是ANSI 兼容终端,您可以执行以下操作:
ECHO <CSI>[2A
<CSI> 通常是转义字符 27。
在 Mac OS X 终端中也是如此:
$ echo -e "\0033[2A"