Jenkins入门之执行Powershell脚本
之前章节提到过powershell,如果需要构建复杂的任务时,使用cmd不是很方便(也可能是由于笔者不太熟悉cmd命令,这里见笑了),这时候powershell就派上用场了,这里并不详细介绍powershell脚本,如果有需要以后另开章节讲解powershell基本命令,powershell面向对象编程,powershell脚本调试,C#编写powershell cmdlet,powershell相关工具等.本篇主要介绍如何在Jenkins环境中运行powershell命令.
目前主要有两种方法在Jenkins环境中运行powershell脚本:通过windows batch command运行powershell和使用powershell Jenkins插件运行powershell
- 使用windows batch command运行powershell.这里主要是使用powershell.exe来执行powershell脚本,跟在windows下使用cmd执行exe并没有什么两样.
下面我们创建一个新项目,名称叫作RunPowershellInCmd,仍然选择FreeStyle Project,我们略过几个和当前项目无关的栏目,直接进入Build 点击

选择红框框选的命令
这时候界面上会出现如下命令框,我们说过,可以在这里像在cmd里面一样输入各种cmd命令

我们输入以下命令后点击保存

点击保存以后,然后执行Build Now执行一次构建.我们可以看到命令是执行成功的

点击构建记录#1进入详情,然后点击左侧console output查看输出详情

我们可以看到Jenkins实际上创建的一个临时bat命令来执行一个cmd命令.这里之所以没有输出结果,是因为当前命令的执行环境为Jenkins安装目录下的当前项目目录,里面默认是空的,所以没有内容,如果我们在编写命令里如果指定-path为powershell指定要列出哪个目录下的内容,则你将会看到此处会输出此目录下的内容.当然你也可以在当前工作目录下面添加一些随机内容,然后再执行一次构建,看看输出内容的变化.
使用powershell.exe来执行powershell脚本时还可以指定一些参数,注意这里的参数并不是powershell命令的参数,而是powershell.exe运行时支持的参数.
支持的参数请看以下文档:
https://technet.microsoft.com/zh-cn/library/dd315276.aspx
这里介绍几个有用的参数:
-ExecutionPolicy脚本默认执行策略.
Powershell脚本的默认执行策略,如果相要执行远程脚本必须设置此选项为RemoteSigned, Unrestricted或者Bypass.关于powershell 执行策略,请看以下文档
-Comand 要执行的命令,比如上面我们执行的是get-childitem
-File 要执行的powershell脚本文件,如果脚本内容很长时,我们往往保存成一个ps1文件,这里通过-File参数指定ps1文件所在的位置
-Sta单线程启用powershell,如果脚本中有非线程安全代码,多线程启动则可能会造成数据状态错误,此时需要指定-sta.
-help 获取关于powershell的帮助,一般的程序都会提供这样一个参数,通过此参数可以快速找到一些想要的帮助,而不需要去查看文档或者笔记
- 通过插件来运行powershell脚本.
很多时候通过powershell.exe来执行powershell并不是很方便,幸运的是Jenkins里面有可以直接运行powershell脚本的插件.下面来看看如何使用
如果不在Jenkins主界面请点击左上角人头标志切换到主界面,然后点击左侧的Manage Jenkins
按钮进入到如下界面:

点击
进入如下界面
大家的跟我的可能稍不一样,因为我已经安装的一些插件,所以这里会提示升级.
点击上面的Available标签

我们在Filter框输入Powershell搜索powershell插件

这时候我们勾选powershell插件前面的复选框,并点击Install Without Restart按钮
这时候进入插件安装界面:

等一会我们发现powershell安装成功

勾选Restart Jenkins when installation is complete and no jobs are running前面的复选框,使jenkins重启,以使插件生效
等Jenkins重启完成以后,我们新建一个任务叫作ExecutePsCmd
当我们点击Add Step Build时,如果powershell安装成功,便会多出一个选项

我们点击它并添加以下命令:

注意这里我们可以添加像本地powershell窗口里一样的命令.有些小伙伴可能会看到我这里get-date全是小写,但是很多教程上都开头首字母大写.Powershell是大小写不敏感的脚本语言,完成全是小写也是ok的.
点击保存以后执行Build Now然后打开#1任务记录,看看窗口输出内容:

Jenkins powershell插件成功执行一条powershell脚本
Jenkins入门之执行Powershell脚本的更多相关文章
- 云服务程序在启动的时候执行Powershell脚本
如果在云服务程序启动时候,需要执行Powershell脚本,我们需要将脚本嵌入到程序中,并且编写一个cmd来执行这个脚本,具体如下: 1.编写测试的Powershell脚本:每隔10分钟 检测dns ...
- 【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
当需要通过代码的方式执行PowerShell脚本时,可以参考以下的示例. Azure SDK中提供了两个方法来执行PowerShell脚本 (SDK Source Code: https://gith ...
- Jenkins入门之执行定时任务
通过前面我们讲解了如何通过Jenkins执行windows command,powershell脚本,此时我们便可以开始完成一些简单任务了,然而可能看到我们都是通过手动按下Build Now按钮来执行 ...
- 执行powershell脚本
打开powershell运行窗口: powershell.exe C:\Users\Administrator\Desktop\a.ps1 -a $a. -a $a : vbs脚本路径(如 C:\h ...
- 使用JenKins实现自动执行python脚本
1.使用Jenkins创建一个工程,工程主要配置项参照下图,其他配置项恢复默认 2.工程配置完成之后,点击[立即构建],执行完成后进入到控制台查看是否执行成功.
- 执行PowerShell脚本的时候出现"在此系 统上禁止运行脚本"错误
使用get-executionpolicy查看当前的脚本执行策略, 默认是Restricted, 也就是不允许任何脚本运行. 此时应该使用set-executionpolicy remotesigne ...
- jenkins配置自动执行sql脚本
shell脚本: bigsql="select big_version,small_version from d0mstore.db_current_version order by big ...
- Jenkins: 执行 PowerShell 命令
Jenkins 默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务.本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题. 安装 PowerShell ...
- 在Jenkins中执行 PowerShell 命令实现高效的CD/CI部署
相比于cmd,powershell支持插件.语法扩展和自定义扩展名,是智能化部署中闪闪的新星,越来越多的开发者偏爱使用Powershell. 如何让Jenkins支持Powershell呢?本文即展开 ...
随机推荐
- 洛谷 质因子分 p2043
#include <iostream>#include <algorithm>#include <cstring>using namespace std; cons ...
- 排序算法 (sorting algorithm)之 冒泡排序(bubble sort)
http://www.algolist.net/Algorithms/ https://docs.oracle.com/javase/tutorial/collections/algorithms/ ...
- 防范 SQL 注入攻击
防范 SQL 注入攻击 我们执行的 SQL语句中包含变量,执行的时候会直接把变量内容替换进去.而如果攻击者在输入框中输入一些危险的字符(通常包含 SQL 注释符 --,以及其他预先精心设置的内容), ...
- 30.Iterator
迭代对于我们搞Java的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator ...
- 两台Linux机器传送文件
https://www.cnblogs.com/lianrenjujishou/p/5458206.html
- Android开发者的Anko使用指南(一)之Intent
使用Anko Intent帮助器可以添加如下依赖 dependencies { compile "org.jetbrains.anko:anko-commons:$anko_version& ...
- 《JavaScript 高级程序设计》读书笔记一 简介
一 历史 二 实现 a. javascript三个部分: ECMAScript:由ECMA-262定义,提供核心语言功能: DOM:提供HTML的应用程序编程接口/提供访问和操作网页内容的方法 ...
- Flutter介绍 - Flutter,H5,React Native之间的对比
Flutter介绍 Flutter是Google推出的开源移动应用开发框架.开发者可以通过开发一套代码同时运行在iOS和Android平台. 它使用Dart语言进行开发,并且最终编译成各个平台的Nat ...
- Python面向对象6:抽象类和自定义类
抽象类- 抽象方法: 没有具体实现内容的方法成为抽象方法- 抽象方法的主要意义是规范了子类的行为和接口- 抽象类的使用需要借助abc模块 import abc - 抽象类:包含抽象方法的类叫抽象类,通 ...
- PHP7 ?:和??的区别
?:和??是PHP添加的新特性,我们可以通过下面的代码来理解 $z = $x ?? $y; //等价于下面 $z = isset($x) ? $x : $y; $z = $x ?: $y; //等价于 ...