9

CLS単一行の出力を行う方法はありますか? のスイッチがあるとは思わないCLSので、より良い質問は次のとおりです。

する方法はありますか

  1. 再利用のために以前の出力をすべて保持しますか?
    また
  2. 現在表示されている出力をキャプチャしますか (マークとコピーでできるように)?

わずかな変更を加えた複数の行ではなく、リアルタイムのフィードバック/情報を使用して、スクリプトをもう少しユーザーフレンドリーにしようとしています。ただし、これを実行する唯一の方法は次のとおりです。

@echo off
goto Prep

:Prep
    SET count=5
    SET genericMessage=This window will close

    goto Output

:Output
    IF NOT %count% == -1 (
        cls
        IF %count% == 0 (
            echo %genericMessage% now.
        ) ELSE (
            echo %genericMessage% in %count% seconds.
        )
        SET /A count=%count% - 1
        ping localhost -n 2 >nul
        goto Output
    ) ELSE (
        exit
    )

したがって、次のようになります。

ここに画像の説明を入力

ただし、これの問題は、1行だけを消去して再出力してリフレッシュしたい場合に、すべてのCLS出力が消去されることです。

誰にもアイデアはありますか?

4

4 に答える 4

16

カーソルを 1 行だけ移動する必要がある場合 (サンプル
のように)、キャリッジ リターン文字を使用して可能です。

@echo off
setlocal EnableDelayedExpansion
for /f %%a in ('copy /Z "%~f0" nul') do set "CR=%%a"
for /L %%n in (5 -1 1) do (
  <nul set /P "=This window will close in %%n seconds!CR!"
  ping -n 2 localhost > nul
)
于 2013-03-05T16:31:55.567 に答える
4

ANSIシーケンスを試してください:http ://www.robvanderwoude.com/ansi.php

リンクを掘り下げると、http://batch.xoo.it/t2238-BG-exe-Utility-for-Batch-Games.htmが最も有望に見えます。

このページには、コンソールサイズ(およびその他のディスプレイとバッファサイズの設定)の制御/設定に関する有益な説明があるようです。http://www.pcreview.co.uk/forums/change- buffer -size-console-window-can-runas-inherit-console-props-t1468842.html

于 2012-08-15T15:29:05.460 に答える
4

残念ながら、Windowsコマンドラインコンソールでカーソルを再配置するネイティブコマンドまたはユーティリティはありません。

サードパーティのユーティリティが必要になります。

Aaciniは、無料のCursorPos.exeユーティリティをDOSTipsに投稿しました。CurorPos.exeの「ソース」は16進数で示されます。ソースを使用するには、HexToBin.bat「コンパイラ」が必要です。

両方のスレッドを参照すると、役立つと思われるユーティリティがいくつか見つかります。

于 2012-08-15T16:00:36.170 に答える