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

我的 version 1.0
  1. set str=0123_ABCDXYZabcdxyz
  2. rem 版本一代码
复制代码
测试代码运行结果:
一次任务与一次“@echo off命令”耗时比=6219

继续优化。。
我的 version 1.1
  1. set str=0123_ABCDXYZabcdxyz
  2. rem 版本一代码
复制代码
测试代码运行结果:
一次任务与一次“@echo off命令”耗时比=5756
SOS --- >> lllsoslll@163.com

TOP

看来我的代码效率好低,是8楼的1/3
SOS --- >> lllsoslll@163.com

TOP

本帖最后由 lllsoslll 于 2012-3-2 17:06 编辑

回复 15# CrLf



恩;
只是大略消除;而且比值的思想是假定电脑配置和环境的变化,使得echo off耗时和代码耗时成正比例变化的;事实上应该不是线性关系;
姑且用近似线性关系来消除偏差;毕竟二者都是随配置提升耗时减少的,单调性一致;


因为求比值的时候,echo off是100000次;代码任务是500次;
最后给代码任务的耗时乘以200;
比值的结果后两位数都是不精确的位数;
SOS --- >> lllsoslll@163.com

TOP

回复 15# CrLf


    想知道如何利用预处理把等号替换为空格
SOS --- >> lllsoslll@163.com

TOP

回复 18# CrLf

一直以来,
    for /f "delims=" %%a in (""..........."")do ......
还有
   for /f "usebackq" ...
在xp中被认为是cmd for /f 的bug(提示找不到文件。。乱码。。);

我这里xp,你那个代码如果把.net与abc之间的等号,换成两个等号,即:
bbs.bathome.net==abc=123====ABC=@#$=test========
这个bug就犯了;

是不是win7修复了这个bug;

另外,我的这里连续的多个等号被当做一个等号替换了;
SOS --- >> lllsoslll@163.com

TOP

回复 18# CrLf


    还有一点,当usebackq不犯的时候,
for /f "delims=" %%a in (""string"")do ............
预处理string时,不仅把=视作空格,像参数分割符(= 、,、;、tab)都被视作空格;

(xp系统)
SOS --- >> lllsoslll@163.com

TOP

回复 20# CrLf


    不错,很好;我一直对usebackq这个bug视作怪物,usebackq的特性我一直就废弃了;
以后用这个^"string^"的转义代替这个特性了;
SOS --- >> lllsoslll@163.com

TOP

回复 18# CrLf


    变量名和替换字符不分大小写,变量法或直接替换获取的话,怕是大问题
SOS --- >> lllsoslll@163.com

TOP

返回列表