手动导出svn差异文件列表到指定目录的脚本
2013-12-26 10:09
1051 查看
1,查看svn差异文件列表命令
打开命令行工具,转到工程svn所在目录,然后执行以下命令。
svn status (stat, st)即:svn status是全名,svn stat 或 svn st是简写。
那么使用
svn st > status.txt
就可以把差异文件列表,输出到status.txt文件。
当然检查修改文件列表也可以用图形界面作,就是copy到文件有些费事。
2,下面就是处理status.txt文件的命令,可以把添加的文件和修改的文件copy到指定目录
其中,第一个参数为svn st导出的文件名(如status.txt),第二个参数为导出文件的目的目录(如"..\diff"表示导出到上级目录的diff文件夹下)
在工程svn所在目录,创建文件: svn_copy_diff.bat,复制粘贴下面代码,
然后执行命令:svn_copy_diff status.txt ..\diff
打开命令行工具,转到工程svn所在目录,然后执行以下命令。
svn status (stat, st)即:svn status是全名,svn stat 或 svn st是简写。
那么使用
svn st > status.txt
就可以把差异文件列表,输出到status.txt文件。
当然检查修改文件列表也可以用图形界面作,就是copy到文件有些费事。
2,下面就是处理status.txt文件的命令,可以把添加的文件和修改的文件copy到指定目录
其中,第一个参数为svn st导出的文件名(如status.txt),第二个参数为导出文件的目的目录(如"..\diff"表示导出到上级目录的diff文件夹下)
在工程svn所在目录,创建文件: svn_copy_diff.bat,复制粘贴下面代码,
然后执行命令:svn_copy_diff status.txt ..\diff
@echo off&setlocal EnableDelayedExpansion&setlocal EnableExtensions rem diff_paths_file: svn status file set diff_paths_file=%1 if "%diff_paths_file%"=="" ( svn st > status.txt set diff_paths_file=status.txt ) if not exist "%diff_paths_file%" ( @echo "%diff_paths_file% does not exist!" @echo "please set name of file diff_path.txt, which contains different files' paths!" goto finish ) rem back_path: the dir where to put the diff files set back_path=%2 if "%back_path%"=="" ( set back_path=..\..\diff ) rem delete dir: not need rem rd /s /q %back_path% if not exist "%back_path%" ( md %back_path% ) rem delete old diff_paths_file del %back_path%\%diff_paths_file% @echo "The destination path is %back_path%" @echo "Now begin copying ..." @echo/ rem loop copy for /f "delims=" %%a in ('type %diff_paths_file%') do ( set "filepath=%%a" set "filepath=!filepath:~8!" rem @echo !filepath! rem pause if not "!filepath!"=="." ( call :LastIndex !filepath! \ idx rem echo !idx! call :SubString !filepath! 0 !idx! dir_str rem echo !dir_str! rem echo %back_path%\!dir_str! if not exist "%back_path%\!dir_str!" ( md %back_path%\!dir_str! ) @echo copy !filepath! %back_path%\!dir_str! rem pause rem copy !filepath! %back_path% copy !filepath! %back_path%\!dir_str! ) ) rem copy diff_paths_file into back_path @echo copy %diff_paths_file% %back_path% copy %diff_paths_file% %back_path% rem finish pause goto finish rem the string method to calculate one string length :Strlen %src_str% len setlocal EnableExtensions set num=0 set str_tmp=%1 :next1 if not "%str_tmp%"=="" ( set /a num+=1 set "str_tmp=%str_tmp:~1%" goto next1 ) set len=%num% endlocal & set "%2=%num%" goto :EOF rem the string method to find the last occurence of specific char :LastIndex %src_str% %char% index setlocal EnableExtensions set len=0 call :Strlen %1 len rem echo %len% set target_ch=%2 set str_tmp=%1 :next if not "%str_tmp%"=="" ( rem check the fisrt char of this string if "!str_tmp:~-1!"=="%target_ch%" goto last rem get remaining string set /a len-=1 set "str_tmp=%str_tmp:~0,-1%" goto next ) set /a len=0 :last endlocal & set %3=%len% goto :EOF rem the string method to cut substring rem this is to use in the scope of DelayedExpansion, that statement is combined with '!' char :SubString %src_str% %start_pos% %end% result setlocal EnableExtensions set str_tmp=%1 set str_tmp=!str_tmp:~%2,%3! endlocal & set %4=%str_tmp% goto :EOF :finish
相关文章推荐
- Python基础学习:svn导出差异文件脚本
- SVN导出指定版本差异文件 ***
- 用于svn添加当前目录下所有未追踪的文件,和删除所有手动删除的文件的脚本
- 导出指定目录下的文件列表包括子文件
- 如何将指定文件或文件夹直接提交到svn指定目录?
- SVN导出两个版本之间的差异文件
- Python 实现在对一个目录下所有文件,指定某一行之后添加内容(批处理脚本)
- 用 CMD 脚本获得当前 svn 目录下各文件及目录的最大 revision 号
- shell脚本,对指定目录下C文件,替换和删除字符串
- SVN导出两个版本之间的差异文件
- 使用Python脚本删除指定文件夹下的指定目录及其文件
- 用svn下载github中指定目录的文件
- Python删除指定目录下过期文件的2个脚本分享
- Python实现查找指定目录下包括某关键字的所有文件脚本
- 如何将指定文件或文件夹直接提交到svn指定目录?
- mysql启动脚本——指定数据目录并指定配置文件
- 如何将指定文件或文件夹直接提交到svn指定目录?
- 从SVN导出指定版本号之间修改的文件
- Eclipse Plug in 开发 学习点滴(3) - EFS(Eclipse File System 简称EFS) 获得指定目录下的 文件/文件夹 列表
- 使用sh脚本如何替换指定目录下所有文件中的指定字符串