我有一个批处理脚本,可以在输入时检出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列表,然后选择要结帐的项目的数字。或者任何方式使许多项目检查更方便。任何帮助将不胜感激 。谢谢!
答案 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/
)
)