2012-01-19 6 views
1

基本的には、ユーザーが有効な入力を提供するまでループする必要があるセクションがありますが、無効な入力が継続的に入力された場合は、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 
) 

答えて

2

あなたは画面をクリアし、このように再びそれを書き換えること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 
) 

この方法ユーザーは「選択? "彼らが無効な入力をした場合

+0

私はこれをやりたがりませんでしたが、私はそれが私の唯一の選択だと思います... –

1

を、これはあなたがこのような何かを行うことができますANSI互換の端末である場合:

ECHO <CSI>[2A 

<CSI>は、 Mac OS Xのターミナルで27

同じエスケープ文字は、通常は次のとおりです。

$ echo -e "\0033[2A" 
+0

良い考えですが、Windowsはこれをサポートしていません – jeb

関連する問題