TortoiseSVN 是一个免费的版本控管工具,我以前在专案开发团队时,我们都是使用这个版控工具在管理我们的专案原始码,这个工具非常好用,到现在我个人开发的专案,也都会将原始码上传到 VisualSVN Server 上做版本控管。
今天有一个需求是要将 Server 上的原始码做每日自动更新,原本是需要手动执行「SVN Update」的动作才行,现在要改成使用 Bat 批次档执行。
以下步骤将会教学如何编写 Bat 指令
Bat 批次档介绍
Bat 批次档(英语:Batch file),又称批次处理文件,副档名为 .bat。
在DOS、Windows 视窗中可以执行命令指令的语言,命令列採直译式执行,它类似于类 Unix 系统下的 Shell script。
批次档适合使用的环境在每日例行性作业或是大量集合式指令,命令列指令支援逻辑运算,例如 if, for, goto, choice 等逻辑指令。可执行 Windows 系统内档案、目录异动或是执行外部程式。
建立 Bat 档案
在想要存放 Bat 档案的目录下建置一个纯文字档,将档名命名为 SvnAutoUpdate.bat (档名可自己定义,但附档名需为 bat)
BAT 呼叫 SVN 执行档
如果你有安装 TortoiseSVN 的话,预设的目录会放在 C:\Program Files\TortoiseSVN 。
而执行 SVN Update 的程式放在 bin\TortoiseProc.exe
如果你也使用预设路径的话,那批次要执行的档案就在
C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
使用纯文字工具打开 SvnAutoUpdate.bat 后,输入指令
CD C:\Program Files\TortoiseSVN\bin\START TortoiseProc.exe
此指令可以开启 SVN Update 的执行程式
但这样还不够,接着要传入参数,让程式自动更新目录。
取得要更新的 SVN 目录
我 SVN 存放的目录在 C:\Project\Cardata,你们依各自的目录修改路径。
接下来把刚刚的 BAT 档内容指令改为
CD C:\Program Files\TortoiseSVN\bin\START TortoiseProc.exe /command:update /path:"C:\Project\Cardata\"
执行 BAT 档后的结果
BAT 可以正确呼叫 SVN Update 程式且更新目录为最新状态了。
但出现另一个问题,更新后视窗没有关闭。
如果视窗没有关闭,连续执行就会这样子,一堆的更新结果画面。
接着只要解决执行更新后,自动关闭视窗即可。
BAT 指令最后修改
把刚刚的指令再改一下
CD C:\Program Files\TortoiseSVN\bin\START TortoiseProc.exe /command:update /path:"C:\Project\Cardata\" /closeonend:2
加入参数 /closeonend:2 ,告知 SVN Update 在更新后自动关闭视窗。
这样子就完成了,执行批次后更新完会自动关闭视窗。
工作排程器加入此 BAT 档
接下来就是打开「工作排程器」,建立一个每日执行的排程来执行此 BAT 档。
触发程序可以依照自己想要的时间
动作就是选「启动程式」然后指向刚刚的 .bat 档案。
这样就完成了喔。
重点整理
将每天必做的工作交由批次档执行使用批次指令执行 SVN 执行档3.SVN 执行档传入参数即可执行动作
4.工作排程器加入此 BAT 档
相关学习文章
如何在 Windows Server 安装 SVN Server 版本控管软体