使用jenkins 在使用编译vc++的一个项目,在执行批处理脚本的时候总是失败,

但是在控制台无论是管理员还是普通用户都能正常编译,jenkins每次都失败,看日志就是调用一个cmd命令直接失败,exit code是1 .

方案一:参考了csdn的一篇博客(下面有链接),才知道可能是权限的问题,用非system用户登录就可以正常编译。

方法很简单。就是登录 Jenkins service。

具体过程:

在"运行"中输入"services.msc"打开服务窗口,找到"Jenkins".

然后右键属性,在“登录”导航中选择“此用户”任何输入能够运行CMD.exe的用户。这里我用了管理员用户。

重启服务就能正常编译了。

方案二:用msbuild

---------------------------------

另外需要注意一点小问题

一、Execute windows batch command   下面写批处理命令 cmd /c "%WORKSPACE%\builder\build.cmd"  ,

这里需要注意需要加双引号 ,因为装的jenkins是32位版本 jenkins全路径有一个空格,对应的sln工程也需要注意这个。

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "C:\Program Files (x86)\Jenkins\workspace\xx\xx.sln" /Rebuild "Release|x86"  /Project xx /out log.txt

 二、另外因为新用jenkins ,他可以直接拉对应的分支

在源码管理里面的 Branches to build:

Branch Specifier (blank for 'any') : 默认是*/master  可以默认编译你的分支 比如:*/dev

三、某些环境变量设置需要重启jenkins服务

---------------------------------------------------------------------------

http://blog.csdn.net/hwhua1986/article/details/47778131

今天搭建Jenkins持续集成环境,编译环境是.net,在.net下没有比较好的代码覆盖率测试插件,所以用了开源的OpenCover,计算代码覆盖率,然后用ReportGenerator导出hmtl格式的测试报告。这里用到了批处理脚本,到这里问题出现了。

脚本写好之后在Windows系统下直接运行没有任何问题。但你要把它放在Jenkins里作为编译后执行的话就会报错,很诡异。我自已也怀疑是用户权限的问题。但用普通用户直接运行脚本也还是没问题。下午google了一下。按照http://stackoverflow.com/questions/10952280/execute-windows-batch-command-from-jenkins-fails-but-runs-fine-in-cmd-exe 提供的方式试了一下OK了。

方法很简单。就是登录 Jenkins service。

具体过程:

在"运行"中输入"services.msc"打开服务窗口,找到"Jenkins".

然后右键属性,在“登录”导航中选择“此用户”任何输入能够运行CMD.exe的用户。这里我用了管理员用户。

-------------------------------------

https://stackoverflow.com/questions/10952280/execute-windows-batch-command-from-jenkins-fails-but-runs-fine-in-cmd-exe

I too had a similar issue once. Try granting the Jenkins service "Logon as This account" right under services.msc and make sure the account you type there is the same as the one you use for running cmd.exe.

jenkins windows执行批处理脚本总是失败的更多相关文章

  1. Windows Bat 批处理脚本

    Windows Bat 批处理脚本 – Getting Started – Variables – Return Codes – stdin, stdout, stderr – If/Then Con ...

  2. Jenkins自动执行python脚本输出测试报告

    前言 在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作. 借助Jenkins,我们可以结合 Git/SVN 自动拉取 ...

  3. 转:windows BAT 批处理脚本教程

    转自:http://www.cnblogs.com/mq0036/p/3412171.html BAT 批处理脚本教程 第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文 ...

  4. EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行

    很多时候, 我们需要以管理员权限来运行批处理脚本, 比如操作 windows 服务. EasyNVR 中提供安装服务的批处理脚本, 运行这个bat文件, 自动将 EasyNVR 以 windows 服 ...

  5. jenkins 执行python脚本 断言失败就可以构建失败

    可以配合try: 那个语句去搭配

  6. 解决Jenkins中执行jmeter脚本后不能发报告(原报告被覆盖、新报告无法保存)的问题

    我没有找到根本原因,但是我用了个取巧的办法: 先将原来的报告移到别的文件夹,执行完jmeter脚本后,再把那些旧报告移回来(也可以不移回来,我这里是为了能从jenkins页面上看).

  7. windows 执行bat脚本

    bat脚本中运行另外一个bat脚本 call 命令 call1.bat内容如下 echo running call1 call2.bat内容如下 @echo off echo start call c ...

  8. Jenkins windows 执行批量cmd命令XCOPY 提示'XCOPY' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    由于Jenkins没有配置环境变量造成 打开Jenkins=>Manage Jenkins =>Configure System =>全局属性 新增全局变量 健: Path 值: % ...

  9. Jenkins怎么安装?Jenkins控制台输出乱码怎么处理?Jenkins执行selenium脚本时浏览器不显示怎么处理?

    今天我们来看一看Jenkins的安装. 首先我们看一下Jenkins是什么,能够干什么.Jenkins呢是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开 ...

随机推荐

  1. Vscode 调试 C 语言时数组值无法显示的问题

    使用 Vscode 的 Gdb 扩展调试 C 语言时,发现数组变量在 变量列表里面中显示为指针,且只显示为其第一个元素的值,无法看到所有元素的值. 如图所示: 解决: 假设有一个元素个数为10的数组v ...

  2. Code Forces 21 A(模拟)

    A. Jabber ID time limit per test 0.5 second memory limit per test 256 megabytes input standard input ...

  3. android开发时程序出现崩溃问题

    原因:项目目录下的:src与gen中的包名不一致时,出现问题 <manifest xmlns:android="http://schemas.android.com/apk/res/a ...

  4. sql server下划线查询

    select * from tablea A where A.b like '%[_]%'

  5. error.log worker_connections exceed open file resource limit: 1024

    不按照预期响应请求 nginx.conf中worker_connections 与ulimt -n 配置的冲突

  6. 重装系统后Myeclipse遇到的项目配置问题--一个菜鸟的经历!

    电脑不知道为什么流量突然变大了. 一查svchost.exe后台下载老多系统.某某安全卫士根本么用,运维说用某企鹅管家. 结果一个鸟样.. 之前是系统是32位的win7  4G内存用不完.又打算升级内 ...

  7. 挂载xfs磁盘

    # 磁盘初始化 [root@localhost ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain ...

  8. LInux进程虚拟地址空间的管理

    2017-04-07 脱离物理内存的管理,今天咱们来聊聊进程虚拟内存的管理.因为进程直接分配和使用的都是虚拟内存,而物理内存则是有系统“按需”分配给进程,在进程看来,只知道虚拟内存的存在! 前言: 关 ...

  9. SSH secure shell 原理与运用

    转: http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 作者: 阮一峰 日期: 2011年12月21日 SSH是每一台Linux ...

  10. #pragma 的用法

    它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征.依据定义,编译指示是机 ...