[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
将 echo.!line! 改为 echo:!line! 能稍微提高效率,另外
  1. set "line=!line:H1=H2!"
  2. echo.!line!
复制代码
因为此时line必然不为空,所以可以简化成:
  1. echo:!line:H1=H2!
复制代码

TOP

回复 5# Demon


    "." 会额外触发对文件名的匹配,参考:http://bbs.bathome.net/viewthread.php?tid=4831

TOP

本帖最后由 CrLf 于 2012-7-27 16:19 编辑

回复 7# Demon


   
噢!这倒没想到,测试结果也确实如此,感谢指正。
不过 echo, echo; echo= 的缺陷在于无法处理 echo;/? 这种参数为 /? 的情况,因为它们都是默认分隔符
这样一来,echo[ 和 echo] 应该是既保证通用性又能避免降低效率的方案了吧

TOP

回复 9# Demon


    试试 echo;/? 和 echo[/?,win7 下测试是有区别的

回复 10# forfiles


    没有什么问题啊,只是那帖子讨论的只是效率,而我们希望找到一个兼顾效率与通用性的方案

TOP

回复 12# forfiles


    测试代码:
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (. : \ ";" "[") do (
  3. echo !time!
  4. echo echo%%~a
  5. (for /l %%b in (1 1 10000) do echo%%~a)>nul
  6. )
  7. echo !time!
  8. pause
复制代码

TOP

返回列表