需要扩展批处理功能以从SVN签出多个文件

时间:2015-08-24 14:02:16

标签: eclipse batch-file svn

我有一个批处理脚本,可以在输入时检出SVN中的任何项目。我必须扩展功能,以便可以检出用户决定的多个文件,并采用简单的方法。现在,我的脚本列出了SVN中的文件,让用户可以选择输入任何名称,并使用非常基本的导航方法检查每个项目的主干。代码如下:

回声============================================== ==============
echo这个批处理文件将自动从eclipse中检出项目 echo ================================================= ===========%NL%

set svnroot= svn://some_dir
set svnroot_temp= %svnroot%

svn ls !svnroot_temp!
:top
set /p direct=Enter directory..press 1 at anytime to return to root directory and type checkout at anytime to checkout the project :
if /i !direct!==checkout ( cls
set   loc=!svnroot_temp!
set   proj=!dir!
if /i !direct!==1  (cls
set svnroot_temp=%svnroot%
svn ls !svnroot_temp!
goto :top
)
set svnroot_temp= !svnroot_temp!/!direct!
svn ls !svnroot_temp!
set dir=!direct!
goto :top
)



if exist "%javawork%/%proj%/" ( echo  %NL%project already  exists... 
PING 1.1.1.1 -n 1 -w 3000 >NUL
echo %NL%updating the folder%NL%  
svn update %javawork%/%proj%/* 
goto :correct
)  
set CheckOutLocation= user_preferred_location

svn checkout %loc%/trunk  %CheckOutLocation%/%proj%/trunk/

echo %NL%%NL% Copying was successful! %NL%

PING 1.1.1.1 -n 1 -w 2000 >NUL

我想知道是否有更简单的方法可以帮助您从SVN中检出更多项目。比如将数字设置到svn ls列表,然后选择要结帐的项目的数字。或者任何方式使许多项目检查更方便。任何帮助将不胜感激 。谢谢!

1 个答案:

答案 0 :(得分:1)

通过将数字汇总到svn ls,将数字添加到findstr /n,然后输入以空格分隔的项目编号序列,以便结帐:

svn ls !svnroot_temp! | findstr /n .
set /p checkout=Enter space-delimited numbers of projects to checkout

set projNo=0
for /f "tokens=*" %%a in ('svn ls !svnroot_temp!') do (
    set /a projNo+=1
    for %%b in (!checkout!) do if %%b==!projNo! (
        svn checkout %%a/trunk %CheckOutLocation%/%%a/trunk/
    )
)
相关问题