bat命令入门与高级技巧详解

2019-01-29 22:08:30刘景俊


运行显示:
请输入需延迟的毫秒数:6000
程序开始时间:15:32:16.37
程序结束时间:15:32:22.37
设定延迟时间:6000毫秒
实际延迟时间:6000毫秒
请按任意键继续. . .
实现原理:首先设定要延迟的毫秒数,然后用循环累加时间,直到累加时间大于等于延迟时间。
误差:windows系统时间只能精确到10毫秒,所以理论上有可能存在10毫秒误差。
经测试,当延迟时间大于500毫秒时,上面的延迟程序一般不存在误差。当延迟时间小于500毫秒时,可能有几十毫秒误差,为什么?因为延迟程序本身也是有运行时间的,同时系统时间只能精确到10毫秒。
为了方便引用,可将上面的例子改为子程序调用形式:

@echo off echo 程序开始时间:%Time% call :delay 10 echo 实际延迟时间:%totaltime%毫秒 echo 程序结束时间:%time% pause exit ::-----------以下为延时子程序-------------------- :delay @echo off if "%1"=="" goto :eof set DelayTime=%1 set TotalTime=0 set NowTime=%time% ::读取起始时间,时间格式为:13:01:05.95 :delay_continue set /a minute1=1%NowTime:~3,2%-100 set /a second1=1%NowTime:~-5,2%%NowTime:~-2%0-100000 set NowTime=%time% set /a minute2=1%NowTime:~3,2%-100 set /a second2=1%NowTime:~-5,2%%NowTime:~-2%0-100000 set /a TotalTime+=(%minute2%-%minute1%+60)%%60*60000+%second2%-%second1% if %TotalTime% lss %DelayTime% goto delay_continue goto :eof

十、模拟进度条
下面给出一个模拟进度条的程序。如果将它运用在你自己的程序中,可以使你的程序更漂亮。

@echo off mode con cols=113 lines=15 color 9f cls echo. echo程序正在初始化. . . echo. echo┌──────────────────────────────────────┐ set/p=■<nul for /L %%i in (1 1 38) do set /p a=■<nulping /n 1 127.0.0.1>nul echo 100%% echo└──────────────────────────────────────┘ pause

解说:“set /p a=■<nul”的意思是:只显示提示信息“■”且不换行,也不需手工输入任何信息,这样可以使每个“■”在同一行逐个输出。“ping /n 0 127.1>nul”是输出每个“■”的时间间隔,即每隔多少时间输出一个“■”。

十一、特殊字符的输入及应用
开始 -> 运行 -> 输入cmd -> edit -> ctrl+p(意思是允许输入特殊字符)-> 按ctrl+a将会显示笑脸图案。
(如果要继续输入特殊字符请再次按ctrl+p,然后ctrl+某个字母)
以上是特殊字符的输入方法,选自[英雄]教程,很管用的。也就是用编辑程序edit输入特殊字符,然后保存为一文本文件,再在windows下打开此文件,复制其中的特殊符号即可。

相关文章 大家在看