jenkins 如何处理windows batch command

时间:2020-12-04 21:23:37

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

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

 

为什么呢?

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

CD %ROOTPATH%
.\Tools\Bin\Python26\python.
exe .\Tools\PythonScripts\SendMail.py %AUTOBUILD_PATH%\Charts mail@mail.com "Test" Config_AutoTest_AutoShooting*.png AutoShootingIndex.htm 

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

报错信息:

jenkins 如何处理windows batch command

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

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 搞的鬼。