zoukankan      html  css  js  c++  java
  • 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

    1. 使用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 执行策略,请看以下文档

    https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-6

    -Comand 要执行的命令,比如上面我们执行的是get-childitem

    -File 要执行的powershell脚本文件,如果脚本内容很长时,我们往往保存成一个ps1文件,这里通过-File参数指定ps1文件所在的位置

    -Sta单线程启用powershell,如果脚本中有非线程安全代码,多线程启动则可能会造成数据状态错误,此时需要指定-sta.

    -help 获取关于powershell的帮助,一般的程序都会提供这样一个参数,通过此参数可以快速找到一些想要的帮助,而不需要去查看文档或者笔记

     

    1. 通过插件来运行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脚本

  • 相关阅读:
    48. Rotate Image
    47. Permutations II
    46. Permutations
    45. Jump Game II
    44. Wildcard Matching
    43. Multiply Strings
    42. Trapping Rain Water
    41. First Missing Positive
    40. Combination Sum II
    39. Combination Sum
  • 原文地址:https://www.cnblogs.com/tylerzhou/p/9060247.html
Copyright © 2011-2022 走看看