一个简单的SVN备份批处理脚本

@echo off cd . rem 设置备份目录位置 set YY=%date:~0,4% set MM=%date:~5,2% set DD=%date:~8,2% set HH=%time:~0,2% set MI=%time:~3,2% set SS=%time:~6,2% set SVN_BAK=%cd%/free_view_%YY%%MM%%DD%_%HH%%MI%%SS% set URL=http://192.168.1.15/svn/free_view rem 如果不存在备份目录则使用checkout命令,否则使用update即可 if not exist %SVN_BAK% ( TortoiseProc.exe /command:checkout /path:%SVN_BAK% /url:%URL% /closeonend:0 ) else ( TortoiseProc.exe /command:update /path:%SVN_BAK% /closeonend:1 ) echo 最后一次更新时间: > %SVN_BAK%/README.txt rem 将日期和时间输出到同一行中 echo %date% %time% >> %SVN_BAK%/README.txt @echo on

备份出来的目录名字格式为free_view_YYMMDD_HHMISS。

 

解释一下怎么样截取date和time这两个变量
首先date和time的输出格式自己调整
我的机器date的输出是这样的:
2011-02-24 周四
注意,中间有一个空格
time的输出是这样的:
15:33:38.92

那么我想设置一个显示年的变量,变量名为YY,等于2006怎么办呢
2006是date输出的前四位,第一位的位号是0,要抓取4位数值
那么就是这样:
set YY=%date:~0,4%
然后你再输入set YY你就能看到YY的值了
调用这个变量的时候就是%YYYY%
注意上面的黑体,位号是从0开始,0、1、2、3、4、5、6、7……

 

另外:time命令取得的时间会有一些变化,比如上午可能是9:35:40.65,下午可能是15:25:40.62,注意小时部分有一位和两位的变化,此时文件夹名称中的时间部分会无法正常获取到字符。可以做如下修改:

time /T 1>TMP
set /p TIME=set HH=%TIME:~0,2%
set MI=%TIME:~3,2%

此时无法获取到秒数值。

你可能感兴趣的:(一个简单的SVN备份批处理脚本)