windows – 执行批处理脚本在Jenkins管道作业中不起作用
我创建了一个power
shell脚本,它将(使用winscp.dll)文件从Jenkins
Windows服务器传输到
Linux服务器.在Jenkins批处理命令中,我执行了powershell脚本,它工作正常.
但是当我在Jenkins管道工作中尝试相同时,它会调用powershell脚本并进入下一步.它不等待PowerShell脚本响应. bat 'powershell.exe -ExecutionPolicy Bypass "D:TestDeploymentscriptsPowerShellScriptFileTransfer.ps1 $env:EndMarket $env:Environment"' 我尝试过另一个PowerShell脚本,它将连接到Linux服务器并执行一些命令.它在管道工作中工作正常 请指导我解决这个问题. 解决方法
有趣.您的问题似乎不在您的脚本中,因为您已经解释过它在批处理作业中有效.
我不知道您的管道是如何编写的,但我建议您查看Stage,Lock and Milestone,这可能就是您所需要的.
我猜你可以在你的管道中添加一个这样的舞台块: stage("Previous Step") { // Some previous step } stage("Wait for Script Execution") { // Call your script bat 'powershell.exe -ExecutionPolicy Bypass "D:TestDeploymentscriptsPowerShellScriptFileTransfer.ps1 $env:EndMarket $env:Environment"' } stage("Next Step") { // Script already finished its execution } 但没有你的管道信息只是一个猜测.另外为了提高脚本兼容性,避免“bat和ExcutionPolicy”并使用PowerShell plugin,使用该插件可以简化代码,如下所示: powershell -File your_script.ps1 编辑:我忘了提到你可以尝试使用PowerShell和winscp lib的不同替代方案,使用Windows和Linux之间的“scp”直接兼容性,我在谈论Cygwin. 安装了Cygwin(使用scp),你可以使用scp,因为它是一个Linux盒子和一个bash脚本而不是powershell: D:/cygwin-64/bin/run.exe /usr/bin/bash -lic "/home/user/file.sh" 在这种情况下,我正在Jenkins项目中使用“运行Windows批处理”选项通过Cygwin静默运行脚本.在脚本中,您可以添加shell命令和所需的scp指令. 它似乎有点复杂,但增加了执行Windows – Linux任务的灵活性. 我在blog中详细介绍了更多示例,您可能会觉得它很有用. 正如avvi所提到的,你应该检查是否正在加载变量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-8.1 – 升级到“Windows 10”后返回“Windows 8.1”
- windows – 如何在软件安装期间锁定普通(非管理员)用户?
- Emacs for Windows错误加载颜色主题
- 如何确定我是否作为控制台应用程序运行? (Win32上的Delphi
- windows – 如何找出创建文件的内容?
- 使用基于Windows的RADIUS(NPS)的SuperMicro IPMI
- active-directory – 委派在Microsoft Exchange 2013中更改
- 如何在Windows批处理脚本或Perl中将文件移动到回收站?
- windows – 域在什么时候比工作组更适合网络?
- * .o:Windows 7无法识别文件格式