使用bat脚本判断远程SVN文件是否有修改
在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文件是否有修改的更多相关文章
- BAT 脚本判断当前系统是 x86 还是 x64 系统
本文告诉大家在写 BAT 脚本的时候,如何判断当前的系统是 32 位系统的还是 64 位系统 通过注册表进行判断方法 @echo OFF reg Query "HKLM\Hardware\D ...
- PHP如何判断远程图片文件是否存在
<?php $url = 'http://www.nowamagic.net/images/test.jpg'; if( @fopen( $url, 'r' ) ) { echo 'File E ...
- 使用bat脚本调用py文件直接获取应用的包名和targetversion
背景: 在上一篇已经介绍过如何利用python调用aapt获取包名 https://www.cnblogs.com/reseelei-despair/p/11078750.html 但是因为每次都要修 ...
- svn文件夹解锁批处理
清除svn文件的bat脚本整理 从svn上检出的项目,不在myeclipse工具中脱离svn的管辖,怎么办呢,下面有我的方法,也是借鉴别人的,用了特别好使,故推荐给大家. 首先创建一个xxx.bat文 ...
- windows下定时利用bat脚本实现ftp上传和下载
前言: 工作中可能会遇到以下情况,利用windows作为中转,来实现两台linux服务器的文件传输. 实现步骤: 1.FTP上传和下载的bat脚本. 脚本分为两部分:可执行bat脚本和ftp命令文件: ...
- 使用jQuery来检测远程图片文件是否存在
使用jQuery来检测远程图片文件是否存在 最近为我的憨豆人笑园添加图片功能时,遇到了这个问题,用户可以填写一个远程的图片地址,也可以上传一个本地图片.为了不浪费服务器的资源,我们需要在客户端先对用户 ...
- 服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。
运行环境:windows server 2008 R2 目的:在数据库服务器A进行数据库自动备份,并且保留5天. 为了安全,需要在web应用服务器B进行数据库的冗余备份,建立双保险.(保留15天) A ...
- PHP判断远程文件是否存在
<?php /* 函数:remote_file_exists 功能:判断远程文件是否存在 参数: $url_file -远程文件URL 返回:存在返回true,不存在或者其他原因返回false ...
- php如何判断远程文件是否存在
<?php /* 函数:remote_file_exists 功能:判断远程文件是否存在 参数: $url_file -远程文件URL 返回:存在返回true,不存在或者其他原因 ...
- 通过在shell脚本中用scp或rsync实现远程同步文件
通过在shell脚本中用expect实现远程scp文件 shell expect的简单用法 http://myunix.blog.51cto.com/191254/1095074 http://ji ...
随机推荐
- 免费赠票 | Cloud Ace 受邀参加 GTC2022 全球流量大会,助力中国企业扬帆出海!
Cloud Ace 受邀参加 GTC2022 全球流量大会,助力中国企业扬帆出海! 大会将在 2023 年 2 月 28 日-3 月 1 日举行,地点就在福田会展中心 6 号展馆.大会门票实行收费 ...
- LocalDateTime与LocalDate
时间新特性 新生事物出现,必定是对旧事物的完善或者是缺陷的弥补. 本文章介绍LocalDate.LocalDateTime.在多线程的情况,相比较于Date.Calendar.SimpleDateFo ...
- hMailServer搭建
请参考网址https://blog.csdn.net/TL18382950497/article/details/124356534
- 关于htpasswd
什么是 htpasswd htpasswd是一个apache的内置工具,其生成的文件称之为htpasswd文件.htpasswd文件本身一个密码本,或者类似于数据库一样,用来存储一些密码(凭证)信息. ...
- 读后笔记 -- Python 全栈测试开发 Chapter9:Postman + Newman 实现接口自动化
9.1 Postman 工具 9.1.4 Postman 基本操作 1. Get 请求 GET 请求的参数通过 Params 设置,最后出现在 url 地址栏上,拼接在 API 后面. 2. Pos ...
- (python)python 3.9 安装 robotframework-ride 因为 wxPython 失败
1. 正常安装方式 1)安装 robotframework pip install robotframework 2) 安装 robotframework-ride pip install robot ...
- python 的钩子函数
一.什么是钩子函数 hook函数就是在一定条件下才会执行的函数,将自己实现的函数挂载到挂载点上 1. hook函数:就是我们自己实现的函数,函数类型与挂载点匹配(返回值,参数列表)2. 挂接:也就是h ...
- 路由器、集线器、交换机分别工作在OSI七层协议模型的哪一层
路由器三层(网络层): 集线器一层(物理层): 普通交换机二层(数据链路层). 现在也有工作在第三层的交换机. OSI七层网络模型由下至上为1至7层,分别为物理层(Physical layer),数据 ...
- 把linux云服务器上的文件放到本地电脑windows上-----secureCRT
1.本地电脑需要安装SecureCRT 2.在secureCRT上登录云端服务器,右键点击云端服务器上方的ip地址,选择"connect SFTP session" 3.在SFTP ...
- corkscrew在ssh中发生错误
使用绝对路径 ProxyCommand="corkscrew 127.0.0.1 12345 jump.123.com 2020" abc@efg.com 改为 ProxyComm ...