批处理运行效率浅谈
大家在写批处理时,除了要考虑代码的通用性,易读性,及简洁以外,效率也是一个应该要考虑的问题。
那么批处理在什么情况下会影响效率呢?
以下是自己写代码的一些经验,欢迎大家跟帖讨论,发表自己的看法。。。
1、call 命令 若在代码使用次数超过50次左右,(大概)会影响效率
2、goto 命令 若在代码使用次数超过50次左右,(大概)会影响效率
3、findstr find dir 这几个命令,若是在一个代码中使用5次,有时甚至是2次,都会明显拖慢速度。
所以在写代码时,应尽量避开这样的用法。
call- ::假设a.txt内容有50行。测试以下两个代码的速度
- @echo off
- for /f %%a in (a.txt) do (
- set var=%%a
- set /a n=2
- call echo %%var:~!n!,1%%
- )
- pause
复制代码
- ::假设a.txt内容有50行。
- @echo off
- for /f %%a in (a.txt) do (
- set var=%%a
- set /a n=2
- echo !var:~2,1!
- )
- pause
复制代码 findstr- ::假设a.txt内容有50行。测试以下两个代码的速度
- @echo off
- for /f %%a in (a.txt) do (
- echo %%a|findstr a
- )
- pause
复制代码
- ::假设a.txt内容有50行
- @echo off
- for /f %%a in ('findstr "a" a.txt') do echo %%a
- pause
复制代码 dir- @echo off
- ::假设当前目录文件比较多。
- for /f "delims=" %%a in ('dir/b/s/a-d') do (
- for /f "delims=" %%i in ('dir/b "%%a"') do (
- echo %%i
- ))
- pause
复制代码
|