dir *.h /b命令可以很简洁的输出某目录下的.h文件列表,每行一个文件名。如此,可以通过
for /f %%i in ('dir *.h /b') do (
rem echo %%i
%tool% %%i
)
用工具对每个.h文件进行某种处理。但%tool%工具的启动开销比较大,当.h文件数量比较多时,该处理将变得非常慢。
如果将所有的.h文件名用空格连接起来,然后作为一个命令行参数传给%tool%,则可以避免%tool%频繁的初始化开销。
setlocal EnableDelayedExpansion
for /f %%i in ('dir *.h /b') do (
set filelist=!filelist! %%i
)
rem echo !filelist!
%tool% !filelist!
endlocal
如此通过简单的脚本更改,很大程度上提升了产品性能。当然也可以在%tool%内部支持一个*.h的通配符方式的工作,将dir *.h /b的工作纳入到%tool%内部,但这会违反优雅的原则。
只做一件事情,并且做好。
将粘合的工作交给脚本。
参考:
相关文章:
2012-3-15
当路径中有空格时bat for中的文件路径会被空格截断,处理方式为:
for /f "tokens=* delims=" %%i in ('dir /b /s *.*') do (
echo ”%%i“
)
参考:
2013-2-28
评论