[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
cmd批处理是功能“强大”,但代码运行速度太慢
慢和快通常是相对的概念,我们通过怎样的例子来说明批处理运行太慢呢?如果说批处理慢的话,什么东西快呢?

这可能是当前内部命令是不能接收管道数据的,而是调用了另一个命令解释器

据某高人说,系统内部是通过临时文件来实现管道的。

关于各个命令的耗时,你的排版好像有点乱,能否重新整理一下。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

关于命令的耗时,plp626也做过类似的统计:

xp5.1版的单核,2.4G,256M 测试
方法:for /l %%a in (1 1 %1)do %2 结合timediff 函数计算。

命令                                             效率(次/秒)
--------------------------------------------------------------------------------------------------
echo ...                                         364.3
echo... >1.txt"                              119.3 (只要...是一行,耗时与...长度有关,但差别不明显)
echo ...>nul"                                 8772.6
call echo ...>nul                             1204.7
if 1==2 do .....                              61349.7
@echo off                                     71428.6
set d=%x%                                  42553.2
set/a n+=1                                    27411.8
call 空+goto:eof                             917.4
goto循环                                      1219.5
shift                                             102040
echo %%a|find >nul                      8474.5
echo %%a|findstr >nul                  8474.5
for /f ('more') echo >nul                2806.7
for /f ('type') echo >nul                 3932.1
for /f ('findstr .*')  echo >nul         4007.6
for /f ('find /v ""') echo >nul          2966.5
for /f  ( 文件) echo >nul                9807.5
echo.>1.txt                                 181.7
echo off>1.txt                            1666.7
del 1.txt                                      1961.7
pushd %tmp%                            2762.4
cd %tmp%                                  2808.7
pushd                                         76923.1
for /r (.)是for /f (dir/ad/s)速度的2倍。

频繁生成临时文件时用echo off>tmp效率最高。
call echo ...会大大降低echo 的速度。
多用if判断语句,与goto:eof会提高效率。


原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=39841
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13楼 的帖子

“15 位的限制”是指什么?能否给个链接让我学习下?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 16楼 的帖子

原来是“在只运行一次set的情况下”啊,呵呵,了解了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表