2012-10-16 126 views
0

我正在創建一個簡單的bat文件,播放存儲在120 .txt文件中的一些ASCII動畫。我的腳本可以工作,但工作速度太快。我想找一種方法來減慢它的一點。我試過了TIMEOUT 1命令,但它只能播放每秒1張圖片,速度太慢。沒有從Windows 7命令行移動,是否有可行的解決方案?控制ASCII動畫的幀速率

這是我的腳本到目前爲止

@echo off 
MODE CON: COLS=91 LINES=41 
cls 
:3 
setlocal enableextensions enabledelayedexpansion 
FOR /R %%i in (*.txt) do (type "%%i" 
) 
goto :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 

我想知道如果在循環中移動CLS,在您的TYPE語句之前,您會獲得更好的結果。

+0

感謝你們倆。 for /循環完美運行。我沒有嘗試睡眠cmd,因爲我想保持資源最低。 –