我正在创建一个简单的bat文件,播放存储在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
答案 0 :(得分: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语句之前。
答案 1 :(得分:1)
这是一种非常慢的帧间减速方法 示例:
@echo exiting script
ping localhost -n 2 > nul
cls
@echo exiting script .
ping localhost -n 2 > nul
cls
@echo exiting script ..
ping localhost -n 2 > nul
cls
@echo exiting script ...
ping localhost -n 2 > nul
cls
@echo exiting script ....
ping localhost -n 2 > nul
cls
@echo exiting script .....
ping localhost -n 5 > nul
cls
答案 2 :(得分:0)
不是内置的,但仍然是命令行:来自Windows资源工具包的sleep.exe
(可在此处获取:http://www.microsoft.com/en-us/download/details.aspx?id=17657)
用法:睡眠时间 - 以秒为单位 睡眠[-m]以毫秒为单位的睡眠时间 sleep [-c] commited-memory ratio(1%-100%)