jenkins 如何处理windows batch command

这两天一直被一个问题困扰。

在jenkins的windows batch command 测试好的,拿到bat文件中,再从Execute Windows Batch command 中调用这个bat,竟然离奇的报错了。

为什么呢?

先介绍一下场景和代码的逻辑。测试好的代码:

CD %ROOTPATH%.\Tools\Bin\Python26\python.
exe .\Tools\PythonScripts\SendMail.py %AUTOBUILD_PATH%\Charts [email protected] "Test" Config_AutoTest_AutoShooting*.png AutoShootingIndex.htm 

其实 AUTOBUILD_PATH 是一个路径,以"\" 为分隔符,准确来说,在python而言,是一个raw的路径字符串。 SendMail会去这个路径下walk,或者listdir,找到文件并读取后处理发邮件给[email protected]

报错信息:

在网上,看到关于这个多出来的*.* 的解释:

http://bbs.chinaunix.net/thread-3577853-1-1.html  这篇文章介绍的不错,看了下大概明白了问题。

但是,如何解决我的问题,而我的问题关键,又是如何产生的呢?

我试过如果os.listdir 如果传入的参数是 raw字符串的"\", 则是成功的,我找到这个,试图将path 转换成raw字符串。结果测试不能通过。

http://code.activestate.com/recipes/65211-convert-a-string-into-a-raw-string/

看来估计是jenkins 搞的鬼。

时间: 2024-09-30 14:49:04

jenkins 如何处理windows batch command的相关文章

Build step 'Execute Windows batch command' marked build as failure

坑爹的Jenkis,在执行windows命令编译.NET项目的时候命令执行成功了,但是却还是报了这样一个错: Build step 'Execute Windows batch command' marked build as failure 综合了几个stackoverflow上的答案,原因如下: jenkins执行windows命令,若退出代码不为0 ,则jenkins会将构建标记为失败 我解决的方法:在bat脚本最后一行加上 exit 0 Build step 'Execute Windo

Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台

这一篇文章是继http://www.cnblogs.com/EasonJim/p/5954155.html的升级版,由于CCNET已经过程,所以我把打包过程的CCNET工具换成Jenkins去实现,批处理那些也没有改变. 同时这也是全程批处理的操作实践. 阅读时,请参考上一篇的实现思路. 一.配置 1.新建Job 注意:上面选择为[构建一个自由风格的软件项目] 2.填写项目信息 3.配置SVN获取源码 这里默认这样选择,只有更新时才会去触发下一步操作. 4.配置构建触发的时间 这里是每分钟进行s

深入浅出Windows BATCH

1.什么是Windows BATCH BATCH也就是批处理文件,有时简称为BAT,是Windows平台上的一种可运行脚本,与*nix(Linux和Unix)上的Shell脚本和其它的脚本(Perl,Python)等是一样的,实质上就是一个文本文件,可是用特定的软件去解释的时候,就变成了可运行脚本.在Windows上,可运行脚本就是BATCH文件,也叫批处理文件,这是从DOS时代遗留下来的名字,意思就是把非常多命令放到一起来运行.它的扩展名是*.bat,双击便可直接运行,在命令行(CMD或叫做命

[转载]Jenkins中执行batch和Python

Jenkins的job->build 支持Ant,maven,windows batch和Shell, 但是我们知道python,perl,ruby等脚本其实也是shell脚本,所以这里的Shell可以扩展为python,perl,ruby等. 例如: 下面执行windows batch 和python 执行后的输入如下: 可以看到windows batch和shell脚本被保存到slave上的临时目录下,然后再执行.

windows batch语法

windows BATCH基本知识扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件. ==== 注 =======================================.bat是dos下的批处理文件.cmd是nt内核命令行环境的另一种批处理文件从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语

Windows Batch 1-4

Guide to Windows Batch Scripting http://steve-jansen.github.io/guides/windows-batch-scripting/index.html Overview batch可以帮助配置 DevOps , 提高每天的工作效率. Part 1 – Getting Started Launching the Command Prompt keyboard shortcut Windows Logo Key + R 输入cmd.exe E

CCNET+ProGet+Windows Batch搭建全自动的内部包打包和推送及管理平台

所要用的工具: 1.CCNET(用于检测SVN有改动提交时自动构建,并运行nuget的自动打包和推送批处理) 2.ProGet(目前见到最好用的nuget内部包管理平台) 3.Windows Batch(windows的批处理,用于nuget的自动打包和推送)(这里是最难解决的地方) 具体的搭建步骤: 一.先搭建CCNET的持续集成环境,可以参照以下这些文章: http://www.cnblogs.com/jillzhang/archive/2008/03/03/1089099.html htt

Windows Batch 4-10

Suppressing Program Output pseudofile(伪文件)NUL是用来丢弃程序的输出的. e.g. 通过针对 loopback address调用 ping, 模拟Unix命令 sleep. 通过将 stdout重定向到 NUL设备来防止将 output打印到command prompt屏幕上. PING 127.0.0.1 > NUL Redirecting Program Output As Input to Another Program 假设你想要将程序的out

jenkins 在windows上配置master 和 agent(slave)

参考链接: https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines+on+Windows 1,创建新的节点 [系统管理]-->[管理节点]-->[新建节点]-->输入[节点名称],然后 选中 "Permanent Agent" 点击[OK] 2,配置节点 在节点配置页面,输入如下: *executors的数量,1或多个: *输入