@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>TMPset /p TIME=<TMPset HH=%TIME:~0,2%set MI=%TIME:~3,2%
此时无法获取到秒数值。