Jenkins+PowerShell持续集成环境搭建(四)常用PowerShell命令
0. 修改执行策略
Jenkins执行PowerShell脚本,需要修改其执行策略。以管理员身份运行PowerShell,执行以下脚本:
Set-ExecutionPolicy Unrestricted
1. Test-Path
确定文件或文件夹是否存在,如:
$testDir="D:\NewDir"
if((Test-Path $testDir) -ne $true)
{
md $testDir
}
2. Copy-Item/Remove-Item
拷贝/删除文件或文件夹,如:
$testDir="D:\NewDir"
if(Test-Path $testDir)
{
Remove-Item $testDir -Recurse -Force
}
3. Cmd
调用Cmd.exe,如通过Cmd调用7z进行压缩/解压缩:
$projectDir="D:\NewDir";
$compressedName="NewDir.7z"; cd $projectDir $cmdargs = "7z a "+$compressedName+" -w .\*"
cmd /c $cmdargs
4. Net use
访问共享文件夹,如:
$username="Victor";
$password="******"; $serverDrive = "\\ServerA\D$"; net use $serverDrive $password /user:$username Copy-Item $serverDrive\test.txt -Destination D:\NewDir net use $serverDrive /delete /y
5. Invoke-Command
在本地或远程主机执行命令,如:
$username="Victor";
$password="******"; $pass = ConvertTo-SecureString -AsPlainText $password -Force
$credential= New-Object System.Management.Automation.PSCredential -ArgumentList $username,$pass $serverName="ServerA"
Invoke-Command -ComputerName $serverName -Credential $credential -FilePath "D:\CI\Script\test.ps1"
其中“test.ps1”的内容为:
$copyDir="D:\"+(Get-Date -format yyyy.MM.dd)+".txt"; Copy-Item D:\test.txt -Destination $copyDir
注意:运行此命令需要添加信任主机
| Step 1:在主机B上Run as Administrator打开PowerShell Step 1.1:启用远程:Enable-PSRemoting -Force Step 1.2:添加信任主机:下面a为允许所有主机,b为添加单个主机或主机列表 a:Set-Item wsman:\localhost\client\trustedhosts * b:Set-item wsman:localhost\client\trustedhosts –value 主机名 Step 1.3:重启WinRM服务:Restart-Service WinRM Step 2:在主机A上打开PowerShell Step 2.1:测试连接:Test-WsMan B Step 2.2:如果连接成功即可使用”Invoke-Command“命令执行相应脚本 |
6. System.Net.WebClient.DownloadString
使用该方法可以间接实现通过Jenkins访问url,示例:
$url="http://blog.ityes.net" (New-Object System.Net.WebClient).DownloadString($url);
7. System.Xml.XmlDocument.Load
读取XML文件,如:
[String]$xmlDocDir = "D:\CI\Config\Credential.xml";
$xmlDoc = New-Object "System.Xml.XmlDocument";
$xmlDoc.Load($xmlDocDir); $username=$xmlDoc.Root.Credential.GetAttribute("Username");
$password=$xmlDoc.Root.Credential.GetAttribute("Password");
其中“Credential.xml”的内容为:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Credential Username="Victor" Password="******"></Credential>
</Root>
8. Sqlcmd
使用 ODBC 执行 Transact-SQL 批处理,如:
$server="DbServer";
$databaseName="DbName";
$username="Victor";
$password="******"; $sqlScriptDir="D:\CI\Script\tes.sql"; Sqlcmd -S $server -d $databaseName -U $username -P $password -i $sqlScriptDir
Jenkins+PowerShell持续集成环境搭建(四)常用PowerShell命令的更多相关文章
- Jenkins+PowerShell持续集成环境搭建(一)前期准备
0. 系统要求 Windows Server:本文章使用的为Windows Server 2012 JDK:本文章使用为JDK 1.8 Windows PowerShell:本文章使用为PowerSh ...
- Jenkins+PowerShell持续集成环境搭建(八)邮件通知
1. 默认邮件功能: Jenkins自带的邮件功能比较简单,配置如下: 设置默认发件人地址: 2. Email Extension Plugin 为了能够更加灵活地使用邮件功能,需要安装Email E ...
- Jenkins+PowerShell持续集成环境搭建(七)构建触发器
Jenkins 有三种类型的构建触发器,如下图: Build after other projects are built:在其他项目构建后构建: Build periodically:定时构建: P ...
- Jenkins+PowerShell持续集成环境搭建(六)参数化构建
参数化构建可以应用于动态绑定源码地址等情况. 勾选“This build is parameterized”: 如果需要动态绑定源码地址,参考: 配置完成后构建项目变成:
- Jenkins+PowerShell持续集成环境搭建(五)SSRS项目
部署SSRS项目的原理是使用ReportingService2005类的方法实现rdl文件上传等功能. 上传rdl文件的脚本示例: $username="Victor"; $pas ...
- Jenkins+PowerShell持续集成环境搭建(三)Web项目
1. 新建一个名字为HelloWorld.Web的Freesyle项目: 2. 配置源码管理: 3. 编译配置: 版本:选择MSBuild4 文件:D:\CI\Config\HelloWorld.We ...
- Jenkins+PowerShell持续集成环境搭建(二)控制台项目
1. 新建一个名字为HelloWorld.Console的Freesyle项目: 2. 配置源码管理: 3. 编译配置: 版本:选择MSBuild4 文件:D:\CI\Config\HelloWorl ...
- Linux下Jenkins+git+gradle持续集成环境搭建
Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集 发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文 一.项目介绍 和 linux ...
- Docker 结合Jenkins 构建持续集成环境
Docker 结合Jenkins 构建持续集成环境 Jenkins : 一个开源的持续集成工具, 提供软件版本发布.自动测试等一系列流程及丰富的插件 Maven: 一个自动化构建工具, 通过一段描述 ...
随机推荐
- day91-redis
Redis数据库 简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset ...
- X86-64寄存器和栈帧--牛掰降解汇编函数寄存器相关操作
X86-64寄存器和栈帧 概要 说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64:正是由于能向后兼容,AM ...
- router-link 绑定事件的方式
实现方法如下 使用.native 实现原生事件 <router-link to="" @click.native="dialogWithdraw=true&quo ...
- [BZOJ4005][JLOI2015]骗我呢-[dp+容斥]
Description 传送门 Solution 如果单独考虑一行i,则左边位置的数严格比右边位置的数小.而一行有m个位置,它们可以填[0,m]这m+1个数,则必然有一个数不存在. 定义第i行的第j位 ...
- I2C地址问题
#define MAX_17040_BATTERY_I2C_ADDR (0x36) 设备地址 #define MAX_17040_BATTERY_WRITE_ADDR ...
- PowerMock单元测试踩坑与总结
1.Mock是什么? 通过提供定制的类加载器以及一些字节码篡改技巧的应用,PowerMock 现了对静态方法.构造方法.私有方法以及 Final 方法的模拟支持,对静态初始化过程的移除等强大的功能. ...
- 用Java执行Python:Jython踩坑笔记
常见的java调用python脚本方式 1.通过Jython.jar提供的类库实现 2.通过Runtime.getRuntime()开启进程来执行脚本文件 1.Jython Jpython使用时,版本 ...
- HBase篇(3)-架构详解
[每日五分钟搞定大数据]系列,HBase第三篇 聊完场景和数据模型我们来说下HBase的架构,在网上找了张比较清晰的图,我觉得这张图能说明很多问题,那这一篇我们就重点来解析下这张图 角色与职责 先介绍 ...
- Redis中单机数据库的实现
1. 内存操作层 zmalloc 系接口 redis为了优化内存操作, 封装了一层内存操作接口. 默认情况下, 其底层实现就是最简朴的libc中的malloc系列接口. 如果有定制化需求, 可以通过配 ...
- python爬虫随笔(2)—启动爬虫与xpath
启动爬虫 在上一节中,我们已经创建好了我们的scrapy项目,看着这一大堆文件,想必很多人都会一脸懵逼,我们应该怎么启动这个爬虫呢? 既然我们采用cmd命令创建了scrapy爬虫,那就得有始有终有逼格 ...