【问题标题】: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
      

      &lt;CSI&gt; 通常是转义字符 27。

      在 Mac OS X 终端中也是如此:

      $ echo -e "\0033[2A"
      

      【讨论】:

      • 好主意,但 Windows 不支持(不再)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 2011-11-29
      • 2011-06-16
      相关资源
      最近更新 更多