现在开发过程中都用到一些版本控制工具:CVS、SVN、VSS等等,这些工具在代码目录中存放了版本控制信息文件,基本上每个目录都有,所以给清理代码带来了不便。
开始时,都是通过资源管理器搜索文件,如CVS、.scc、.vssscc等等,然后删除;
后来由于经常这样删,就写了个CVSCleaner删除当前目录及其子目录中CVS目录的小工具,每次考出一本程序,把它放进去执行以下就OK了;
最近发现xcopy居然有exclude功能,又经常要清理VSS管理的解决方案,于是有了如下的:VSS版本控制信息文件清理工具 ClearSln.bat
- @echo off
- if "%1" == "" goto _usage
- if "%2" == "" goto _usage
- echo.
- echo Powerlly欢迎您使用VSS版本控制信息文件清理工具
- echo.
- :: 生成exclude.txt文件
- set EXCLUDEFILE=exclude.txt
- :: 如果排除条件不存在,生成默认排除条件
- :: 排除bin、obj目录,排除以.scc、.vssscc、.vspscc结尾的vss版本控制信息文件
- if not exist %EXCLUDEFILE% (
- echo /bin/>%EXCLUDEFILE%
- echo /obj/>>%EXCLUDEFILE%
- echo .scc>>%EXCLUDEFILE%
- echo .vssscc>>%EXCLUDEFILE%
- echo .vspscc>>%EXCLUDEFILE%
- )
- if not exist "%1" goto _err1
- if exist "%2" rd "%2" /s/q
- md "%2"
- :: 根据排除条件拷贝文件
- xcopy "%1" "%2" /e /y /r /exclude:%EXCLUDEFILE%
- :: 将指定目录及其子目录、目标文件只读属性去掉
- attrib -R "%2" /s
- echo.
- echo 成功清理%1到%2
- goto _quit
- :_usage
- echo.
- echo VSS版本控制信息文件清理工具
- echo.
- echo Author: Powerlly EMail: 47371559@163.com
- echo Vertion: V1.0 Date: 2008.10.07
- echo.
- echo 语法:ClearSln ^<原目录/文件^> ^<目标目录/文件^>
- echo.
- echo ^<原目录/文件^> 必须指定的参数, 要拷贝的解决方案目录
- echo ^<目标目录/文件^> 必须指定的参数, 要拷贝到的目标目录
- echo off
- goto _quit
- :_err1
- echo 错误:指定的%1不存在!
- :_quit
命令行程序还是比较方便的。