Jenkins在批处理文件之前删除它';完成了

Jenkins在批处理文件之前删除它';完成了,jenkins,Jenkins,我在Server2012虚拟机上运行Jenkins,我注意到我的一些项目在成功时被标记为不完整。我收到错误“找不到批处理文件”。从我可以看出,问题是Jenkins为运行我的项目而创建的批处理文件在完成之前被删除。我正在从一个不会发生此问题的windows 7设备迁移 我可以看到批处理文件是在C:\Users\164016\AppData\Local\Temp\中创建的,然后在批处理文件完成之前将其删除。我甚至可以在批处理文件被删除之前打开它 我尝试将Call命令放在命令的开头,但这并不能解决问题

我在Server2012虚拟机上运行Jenkins,我注意到我的一些项目在成功时被标记为不完整。我收到错误“找不到批处理文件”。从我可以看出,问题是Jenkins为运行我的项目而创建的批处理文件在完成之前被删除。我正在从一个不会发生此问题的windows 7设备迁移

我可以看到批处理文件是在
C:\Users\164016\AppData\Local\Temp\
中创建的,然后在批处理文件完成之前将其删除。我甚至可以在批处理文件被删除之前打开它

我尝试将Call命令放在命令的开头,但这并不能解决问题

LaunchPad.exe命令是一个定制脚本,用于从Excel vba宏返回退出代码

如果你有任何建议,请告诉我

以下是日志:

在工作区C:\TEMP\Jenkins Slave\workspace\Weekly Claim Edit WQ Age中的(164016)远程计算机上远程构建
[每周索赔编辑WQ年龄]$cmd/c呼叫c:\Users\164016\AppData\Local\Temp\hudson318820465265190989.bat
C:\TEMP\Jenkins Slave\workspace\Weekly Claim Edit WQ Age>“O:\Analytics Team\Tasks\Automation Components\Ryan\C\LaunchPad\LaunchPad\LaunchPad\bin\Debug\LaunchPad.exe”“C:\Program Files(x86)\Quest Software\Toad for Data Analytics 2.7\Toad.exe”-batch=true“O:\Analytics Team\Tasks\Automation Components\Cindy\TAS\Claim\Claim\Edit\WQ Age.TAS”“O:\Analytics Team\Tasks\Claim Edit WQ Age\Claim_Edit_WQ_Age.xlsm”
发射台开始时间:2014年7月10日上午9:49:10
停止程序前的时间:60分钟
程序:“C:\Program Files(x86)\Quest Software\Toad for Data Analyzers 2.7\Toad.exe”
参数:“-batch=true”O:\Analytics Team\Tasks\Automation Components\Cindy\TAS\Claim\u Edit\u WQ\u Age.TAS”
vba文件:“O:\Analytics Team\Tasks\Claim Edit WQ Age\Claim_Edit_WQ_Age.xlsm”
vba退出文件:O:\Analytics Team\Tasks\Claim Edit WQ Age\Claim_Edit_WQ_Age.txt
报告完成时间:2014年7月10日9:50:28 AM 164016 O:\Reports\EPIC\EPIC索赔编辑WQ\20141007索赔编辑WQ Age.xlsx
正在退出启动板:未检测到错误:0
找不到批处理文件。
生成步骤“执行Windows批处理命令”将生成标记为失败
完成:失败

你还有其他的事情要做

当您配置执行Windows批处理命令时,它会创建一个临时批处理文件,然后由Jenkins执行

临时批处理文件的执行开始于:
[每周索赔编辑WQ年龄]$cmd/c呼叫c:\Users\164016\AppData\Local\Temp\hudson318820465265190989.bat

在:
生成步骤“执行Windows批处理命令”将生成标记为失败

临时批处理文件hudson318820465265190989.bat将在最后一行之后被删除

您的错误
批处理文件找不到。
发生在该行之前。因此,找不到的不是Jenkins临时批处理文件,而是其他文件


除非您提供执行Windows批处理命令的内容,否则很难猜出还有什么问题。

我遇到了一个非常类似的问题。我在Jenkins运行一个作业,该作业调用一个专门的内部程序,导致“批处理文件未找到”“错误。原来在正在运行的批处理文件之一中有一个
del%TEMP%\*.*/q
命令。这是删除在作业中间的所有詹金斯临时批处理文件并导致错误。

简单的解决方案是简单地重新定位Jenkins临时文件夹。这可以通过向Jenkins启动脚本添加命令行选项来实现。我的启动脚本看起来像:
java-XX:MaxPermSize=1024m-XX:+cmsclasssunloadingerabled-XX:+useConMarkSweepGC-Djava.io.tmpdir=C:\Users\!!我的用户名\桌面\Jenkins\u Temp-jar Jenkins.war

我添加的重要部分是
-Djava.io.tmpdir=C:\Users\!!我的用户名\桌面\Jenkins_Temp
选项(出于隐私原因删除了我的用户名)。这解决了问题。别忘了用系统的有效路径名替换我的路径


应将命令行选项添加到主启动脚本和从启动脚本中以进行正确操作。

执行Windows批处理命令:“LaunchPad.exe”“C:\Program Files(x86)\Quest Software\Toad for Data Analysters 2.7\Toad.exe”-batch=true“O:\Analytics Team\Tasks\Automation Components\TAS\Claim\U Edit\U WQ\U Age.TAS”调试启动板中的“O:\Analytics Team\Tasks\Claim Edit WQ Age\Claim_Edit_WQ_Age.xlsm”-此行执行后,批处理文件似乎会被删除:process=process.Start(processInfo);奇怪的是,临时批处理文件似乎在最后一行完成之前被删除。出于调试目的,您可以将
暂停
(作业在终止前不会完成)或
ping-n 50 127.0.0.1
(关闭前将ping循环50次)在执行Windows批处理命令时,只是为了在Jenkins删除临时的
.bat
文件之前提供一个延迟。如果我在开始时添加pause命令,它就会工作。如果我在结束时添加它,它就不会运行,因为批处理文件被删除了。我遇到了同样的问题。dir('C:\\dev\\abc\def'){bat some command}将允许Jenkins在c:\dev\abc\def(简化实名)中创建其bat文件。到目前为止没有问题,除了abc\def是git repo的一个分支,命令执行git clean-x-d-f,这也清理了Jenkins的临时文件!