在Windows上,

使用 svn status -u -q %dir% 可以列出svn仓库的状态:

M             8295   build.bat
* 8306 E:\game\bzk\dev\tools\proto\src\jianghu_dun.proto
* 8306 E:\game\bzk\dev\tools\proto\src\hero.proto
M 8299 svn_ci.bat

(使用 svn status /? 可以查看 svn status的用法)

如上,我们可以获得类似的输出,其中一行第9个字符是星号*代表远程有修改的,因此我们只要查出某一行第九个字符是个星号即可,

翻来覆去查来找去,bat对字符串的操作真是难以言语,首先要在脚本中获得命令的输出,bat的方法是:

for /F "delims=" %%i in ('svn status -u -q %1') do (
# echo %%i 可以输出:M 8295 build.bat
set out=%%i
# 但是 echo %out%就不行,搞不懂
)
# 如果在这里才处理%out% %out%等于`svn status -u -q`输出的最后一行,而不是总共4行,也不行

目前可以解决的思路是在for /F "delims=" %%i in ('svn status -u -q %1') do中加入选项 "tokens=1-4 delims= "

将输出按照空格分开,分别判断前4个是否包含星号:

set svn_change=false

call :check_svn_remote %here%\src
if %svn_change% == true (
echo SVN上有更新的文件,正在重新生成
call %HERE%\build.bat
)
goto :eof # =========定义==============
:check_svn_remote
set svn_change=false
for /F "tokens=1-4 delims= " %%i in ('svn status -u -q %1') do (
if [%%i] == [*] goto :svn_change_true
if [%%j] == [*] goto :svn_change_true
if [%%k] == [*] goto :svn_change_true
if [%%l] == [*] goto :svn_change_true
)
goto :eof :svn_change_true
set svn_change=true
goto :eof

如有更好的办法,还请大家指点:)

使用bat脚本判断远程SVN文件是否有修改的更多相关文章

  1. BAT 脚本判断当前系统是 x86 还是 x64 系统

    本文告诉大家在写 BAT 脚本的时候,如何判断当前的系统是 32 位系统的还是 64 位系统 通过注册表进行判断方法 @echo OFF reg Query "HKLM\Hardware\D ...

  2. PHP如何判断远程图片文件是否存在

    <?php $url = 'http://www.nowamagic.net/images/test.jpg'; if( @fopen( $url, 'r' ) ) { echo 'File E ...

  3. 使用bat脚本调用py文件直接获取应用的包名和targetversion

    背景: 在上一篇已经介绍过如何利用python调用aapt获取包名 https://www.cnblogs.com/reseelei-despair/p/11078750.html 但是因为每次都要修 ...

  4. svn文件夹解锁批处理

    清除svn文件的bat脚本整理 从svn上检出的项目,不在myeclipse工具中脱离svn的管辖,怎么办呢,下面有我的方法,也是借鉴别人的,用了特别好使,故推荐给大家. 首先创建一个xxx.bat文 ...

  5. windows下定时利用bat脚本实现ftp上传和下载

    前言: 工作中可能会遇到以下情况,利用windows作为中转,来实现两台linux服务器的文件传输. 实现步骤: 1.FTP上传和下载的bat脚本. 脚本分为两部分:可执行bat脚本和ftp命令文件: ...

  6. 使用jQuery来检测远程图片文件是否存在

    使用jQuery来检测远程图片文件是否存在 最近为我的憨豆人笑园添加图片功能时,遇到了这个问题,用户可以填写一个远程的图片地址,也可以上传一个本地图片.为了不浪费服务器的资源,我们需要在客户端先对用户 ...

  7. 服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

    运行环境:windows server 2008 R2 目的:在数据库服务器A进行数据库自动备份,并且保留5天. 为了安全,需要在web应用服务器B进行数据库的冗余备份,建立双保险.(保留15天) A ...

  8. PHP判断远程文件是否存在

    <?php /* 函数:remote_file_exists 功能:判断远程文件是否存在 参数: $url_file -远程文件URL 返回:存在返回true,不存在或者其他原因返回false ...

  9. php如何判断远程文件是否存在

    <?php /*   函数:remote_file_exists   功能:判断远程文件是否存在   参数: $url_file -远程文件URL   返回:存在返回true,不存在或者其他原因 ...

  10. 通过在shell脚本中用scp或rsync实现远程同步文件

    通过在shell脚本中用expect实现远程scp文件  shell expect的简单用法 http://myunix.blog.51cto.com/191254/1095074 http://ji ...

随机推荐

  1. (0501) perl-正则表达式-匹配关键字task【知乎】

    (1)

  2. OSPF配置知识总结2(单区域)

    OSPF配置知识总结2 静态路由有静态路由的好处,但也有弊端,牵一发动全身,在一个路由路径上,只要变一个,其他所有的路由器上的静态路由都要跟着改变. 用动态路由OSPF很简单就能解决这个问题.如下: ...

  3. Redis容器的二种常用启动方式

    #==========redis:latest镜像的容器启动命令============# docker run -d --name redis01 -p 6379 --restart unless- ...

  4. pgsql的round函数

    不知道是我菜还是咋地,感觉pg里面用round不是很爽啊,明明在其他库能运行的,字段类型卡得太死了吧 照说float8类型还是数值,怎么就报错呢,如下 错误:  函数 round(double pre ...

  5. Jmeter接口测试+Jmeter性能测试项目实战+Jmeter性能监控分析调优01

    Jmeter P1 性能测试关键指标 1,这些指标大家看到后有什么感觉呢?对于功能测试,一般结果就两种,成功的或者是不通过的,有问题的和没问题的,有毛病的和没毛病的,比如打开网页,能打开就打开,打不开 ...

  6. tomcat反向代理,监控,性能优化详细步骤

    第1章 tomcat简介Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同 ...

  7. vue中v-if控制的可编辑div(contenteditable='true')无法绑定@input事件

    <div class="content-container" ref="contentContainer"> <div v-if=" ...

  8. SVNKit使用相关工具类

    SVNKit操作SVN仓库 导入依赖 <dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifa ...

  9. UGUI UI拖拽,UI连线。

    1.拖拽 public class Item : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { public Re ...

  10. java的Stream

    代码 List<Student> all = Student.getAll(); // 转换成数组 过滤所有的男性 Student[] students = all.stream().fi ...