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

この場合、カーソルはユーザー コマンドを待ちますが、メイン メニューの文字「U」の横ではなく、別の場所で点滅します。

質問 - メニューの横にある「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 ループ内にあり、各オプションにバッチまたはルーチンを呼び出す必要があります。次に、呼び出されたルーチンは、単純に /B を終了してメイン メニューに戻ることができます。

于 2012-08-26T15:51:09.317 に答える