您的位置:首页 > 其它

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

2011-02-09 17:28 309 查看
@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=<TMP
set HH=%TIME:~0,2%
set MI=%TIME:~3,2%

此时无法获取到秒数值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: