作者:朱金灿
来源:http://blog.csdn.net/clever101
平时项目开发中时常需要清理临时编译文件,比如清理obj文件、pdb文件等,于是想写一个小工具实现这个功能。
要实现这个功能,要选择合适的工具。首先想到使用批处理文件是最好的实现方式。于是写了个批处理文件,代码如下:
- :: file: 清除临时编译文件.bat
- :: purpose: 清除临时编译文件
- :: author: zjc
- :: time:2012.10.01
- del *.map /S>>logs.txt>logs.txt
- del *.trg /S>>logs.txt
- del *.tlb /S>>logs.txt
- del *.sym /S>>logs.txt
- del *.vxd /S>>logs.txt
- del *.386 /S>>logs.txt
- del *.exp /S>>logs.txt
- del *.pel /S>>logs.txt
- del *.rsp /S>>logs.txt
- del *.res /S>>logs.txt
- del *.pdb /S>>logs.txt
- del *.pch /S>>logs.txt
- del *.sbr /S>>logs.txt
- del *.bsc /S>>logs.txt
- del *.plg /S>>logs.txt
- del *.ncb /S>>logs.txt
- del *.opt /S>>logs.txt
- del *.aps /S>>logs.txt
- del *.tmp /S>>logs.txt
- del *.ilk /S>>logs.txt
- del *.idb /S>>logs.txt
- del *.sup /S>>logs.txt
- del *.tlh /S>>logs.txt
- del *.tli /S>>logs.txt
- @for /F "delims=" %%i in ('dir *.obj /S /B^|find "\Release\"') do del "%%i">>logs.txt
- @for /F "delims=" %%i in ('dir *.obj /S /B^|find "\Debug\"') do del "%%i">>logs.txt
- @for /f "delims=" %%i in ('dir /S /B /AD^|find "\Release"' ) do rd /q "%%i">>logs.txt
- @for /f "delims=" %%i in ('dir /S /B /AD^|find "\Debug"' ) do rd /q "%%i">>logs.txt
稍微解释下这个程序,
del *.tli /S>>logs.txt 就是删除tli为后缀的文件,然后把它写到日志里。
@for /F "delims=" %%i in ('dir *.obj /S /B^|find "\Release\"') do del "%%i">>logs.txt 就是把Release文件下的obj文件列出来然后删除掉。
@for /f "delims=" %%i in ('dir /S /B /AD^|find "\Release"' ) do rd /q "%%i">>logs.txt
就是循环删除在Release文件下的上面指定后缀的文件。
logs.txt 为生成的删除文件的日志文件,里面记录了已经删除了的文件。
这条批处理文件的扩展方式是这样的:如果你要增加一个删除后缀,就在del语句后面增加一行,如增加删除htm文件:del *.htm /S>>logs.txt。若要增加一个obj文件所在的文件,就添加一行
@for /F "delims=" %%i in ('dir *.obj /S /B^|find "\Release\"') do del "%%i">>logs.txt
将你的文件夹替换上面的\Release\文件夹就行。
如果要搜索其它文件夹,则增加一行
@for /f "delims=" %%i in ('dir /S /B /AD^|find "\Debug"' ) do rd /q "%%i">>logs.txt
将你的文件夹替换上面的\Debug文件夹就行。