[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助,如何逐条延时处理bat命令

由于有大量的bat命令,且在公司,所以,只能提供一个简单的样本
这是样本,实际上有很多条命令。

*********************************************

要实现的功能或效果如图,也就是每条都延时执行

####################################

最终的格式要是这样子

要求就是,不能在指令中间插入其它指令,不能打乱指令的顺序,只能在开头加入指令,实现下面的指令之间延时执行。
我找遍了都没找到相关资料,没头绪了,谢谢各位大神

一个要求首先要有其存在的现实需求的理由,以及实现的难度。
难度,仅目前我所知的bat代码是不可以在不修改源码的基础上实现你要的要求。即便是专门有个bat来读取原bat的内容临时实现读一句就插入一个延时的功能,也只是一个暗中过度的办法。也有部分源码是不可以在其中临时插入。所以,如果强求插入延时,会导致原bat功能失效。
处处延时需求的本意是什么,让电脑休息吗,不是理由。等待别人的工作进行结果同步吗,需要专门的同步语句才可以,不是简单延时就可解决的。因此处处延时并不是实际的需求。如果很需要一个延时,最佳方案是在一个独立的bat源码后加入一个足够时长的延时,起码原bat的功能不会失效。
目的,学习批处理

TOP

回复 2# hlzj88


猜测楼主想要这个效果:
  1. @echo off
  2. for /f "delims=:" %%i in ('findstr /n "^:OriginalScript$" "%~f0"') do (
  3.     call :ExecScript %%i
  4. )
  5. goto :eof
  6. :ExecScript
  7. for /f "skip=%1 delims=" %%a in ('type "%~f0"') do (
  8.     %%a
  9.     timeout /t 1 >nul
  10. )
  11. goto :eof
  12. :OriginalScript
  13. echo 你好
  14. echo 你真好
  15. echo 你真的好
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# hlzj88

噢,我这个是有大量的指令文本,每个指令文本大概30条指令左右,每天使用的频率也挺高的,如果按照原先的工具的话,要耽误很多时间,需要调端口,波特率等等,但是如果用bat这样处理,直接调用 adb,一键发送指令,原先需要30秒,现在只要3秒。

TOP

回复 3# Batcher


    感谢大神,这个真的可以欸,好开心,请问实现原理是啥?如果我需要0.1S秒的延时的话,又该怎么实现?因为如果每条1秒的延时的话,等待时间有点长。。。。

TOP

回复 5# 寒门小侠


    大佬,请问怎么实现?如果完全没有延时的话,会导致设备接受指令后来不及执行指令会异常

TOP

回复 5# 寒门小侠


第10行的timout命令的最小单位是1秒,需要找其他方法实现。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 qixiaobin0715 于 2020-8-7 16:40 编辑

要是能把计时单位设置成毫秒应当就能解决。

TOP

回复 5# 寒门小侠
  1. @echo off
  2. > "%temp%\MySleep.vbs" echo WScript.Sleep 100
  3. for /f "delims=:" %%i in ('findstr /n "^:OriginalScript$" "%~f0"') do (
  4.     call :ExecScript %%i
  5. )
  6. goto :eof
  7. :ExecScript
  8. for /f "skip=%1 delims=" %%a in ('type "%~f0"') do (
  9.     %%a
  10.     REM 大约延时0.1秒(不是特别精确)
  11.     cscript //nologo "%temp%\MySleep.vbs"
  12. )
  13. goto :eof
  14. :OriginalScript
  15. echo 你好
  16. echo 你真好
  17. echo 你真的好
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表