0

120 個の.txtファイルに格納された ASCII アニメーションを再生する単純なバット ファイルを作成しています。私のスクリプトは動作しますが、動作が速すぎます。少しでも遅くなる方法を見つけたいです。TIMEOUT 1 コマンドを試しましたが、毎秒 1 画像しか再生されず、遅すぎます。Windows 7 コマンド ラインから移動せずに実行可能なソリューションはありますか?

これはこれまでの私のスクリプトです

@echo off
MODE CON: COLS=91 LINES=41
cls
:3
setlocal enableextensions enabledelayedexpansion
FOR /R %%i in (*.txt) do (type "%%i"
)
goto :3
4

3 に答える 3

1

FOR /L ループを使用して遅延を導入できます。以下は、約 100 ミリ秒の遅延を導入するスクリプトです。上部近くの簡単なテストでは、100 ミリ秒を近似するために必要な反復回数が計算されます。数はマシンによって異なります。目的の結果が得られるように、必要に応じて msecDelay の定義を調整します。

@echo off
setlocal

:: Compute the number of iterations required to get the desired delay
set msecDelay=100
set ticks=100000
set "start=%time%"
for /l %%N in (1 1 %ticks%) do rem
set "stop=%time%"
for /f "tokens=3,4 delims=:.," %%A in ("%start%") do set /a start=1%%A%%B-10000
for /f "tokens=3,4 delims=:.," %%A in ("%stop%") do set /a stop=1%%A%%B-10000
if %start% gtr %stop% set /a stop+=6000
set /a delay=msecDelay*ticks/(stop-start)/10

MODE CON: COLS=91 LINES=41
cls
:3
FOR /R %%i in (*.txt) do (
  type "%%i"
  for /l %%n in (1 1 %delay%) do rem
)
goto :3

TYPE ステートメントの直前に CLS をループ内に移動することで、より良い結果が得られるかどうか疑問に思っています。

于 2012-10-16T15:07:02.170 に答える
0

組み込まれていませんが、コマンドライン:sleep.exeWindowsリソースキットから(ここで入手可能:http://www.microsoft.com/en-us/download/details.aspx?id = 17657

使用法:スリープ秒単位
のスリープ時間[-m]ミリ秒単位のスリープ時間
スリープ[-c]コミットされたメモリの比率(1%-100%)

于 2012-10-16T13:40:58.933 に答える