svn checkout bat

svn checkout bat

  1. windows 客户端安装subversion

  2. windows svn-checkout.bat脚本编写

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    /path/to/project/hooks/svn-checkout.bat:

    @echo off

    set PMSDIR=C:\clone_dir
    set PMSVBS=%PMSDIR%\hooks\svn-update.vbs
    set PMSBAT=%PMSDIR%\hooks\update.bat
    set SVNURL=https://10.10.10.10/svn/test/
    set SVNUSR=aaa
    set SVNPWD=aaa
    set SVNCMD="C:\Program Files (x86)\Subversion\bin\svn.exe"


    if not exist %SVNCMD% (
    echo 执行失败:
    echo 系统未安装subversion,请先安装subversion后,在进行重新执行...
    echo Subversion:https://sourceforge.net/projects/win32svn/
    exit
    )


    if not exist %PMSDIR% (
    echo 开始部署程序...
    %SVNCMD% checkout %SVNURL% %PMSDIR% --username %SVNUSR% --password %SVNPWD%
    echo 结束部署程序...

    echo 开始执行vbs更新程序...
    start %PMSVBS%
    echo 结束执行vbs更新程序...

    exit
    ) else (
    echo 是否需要删除目录%PMSDIR%,并重新下载程序包?
    echo 选择'yes',会删除目录%PMSDIR%,并重新下载程序包
    echo 选择'no',默认会尝试更新目录%PMSDIR%

    set /p input=请输入:
    )

    if %input% == yes (
    taskkill /f /im wscript.exe
    echo 已经停止wscript.exe服务

    rd /s /Q %PMSDIR%
    echo 已经删除目录%PMSDIR%

    ping -n 3 127.0.0.1>nul

    echo 开始重新部署程序...
    %SVNCMD% checkout %SVNURL% %PMSDIR% --username %SVNUSR% --password %SVNPWD%
    echo 结束重新部署程序...

    echo 开始执行vbs更新程序...
    call %PMSBAT%
    echo 结束执行vbs更新程序...

    ) else (
    echo 开始更新程序...
    echo %SVNCMD% update %PMSDIR% --username %SVNUSR% --password %SVNPWD%
    %SVNCMD% update %PMSDIR% --username %SVNUSR% --password %SVNPWD%
    echo 结束更新程序...
    )

    pause
  3. windows svn-update.bat脚本编写

    1
    2
    3
    /path/to/project/hooks/svn-update.bat:
    @echo off
    "C:\Program Files (x86)\Subversion\bin\svn.exe" update "C:\clone_dir" --username "aaa" --password "aaa"
  4. windows svn-update.vbs脚本编写

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /path/to/project/hooks/svn-update.vbs:
    '指定时间间隔调用.bat文件
    '停止脚本请在任务管理器结束wscript.exe
    Set ws=wscript.createobject("wscript.shell")
    dim bat
    '需运行的文件
    bat="cmd.exe /c svn-update.bat"
    do
    '0表示不显示窗口,1显示,调试用
    ws.run bat,0
    '每60秒运行一次
    wscript.sleep 60000
    loop
  5. windows update.bat脚本编写

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off

    set PMSDIR1=D:\clone_dir\hooks
    set PMSVBS1=svn-update.vbs

    if exist %PMSDIR1% (
    cd /d %PMSDIR1%
    echo 开始执行vbs程序:%PMSVBS1%
    start %PMSVBS1%
    echo 结束执行vbs程序:%PMSVBS1%
    )