SharePoint 2010开发最佳实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 使用Windows PowerShell集成脚本开发环境(ISE)

为了更好地开发Windows PowerShell脚本,可以使用Windows PowerShell集成开发环境,以下简称ISE。该工具属于操作系统的一部分,但在初始安装的时候不会默认安装进来,如果使用的是Windows Server 2008服务器,可以通过管理工具->服务器管理->添加功能(Feature)将ISE作为功能添加进来,如图2-7所示,如果使用的是Windows 7,可以使用控制面板将ISE添加进来。

图2-7 安装ISE

安装完成以后,通过单击开始->所有程序->附件->Windows PowerShell->Windows PowerShell ISE运行集成开发环境,启动以后界面如图2-8所示。

使用过Visual Studio的开发者将会发现ISE非常好用,可以通过F5键执行,也可以在程序中设置断点进行调试。在ISE的上部窗口里输入以下代码测试:

$sum1=1+2
$sum2=3+4
$sum3=$sum1+$sum2
Write-Host $sum3

图2-8 ISE启动画面

输入后按F5键查看运行结果,如图2-9所示。

图2-9 运行结果

上例中通过“$”来创建变量sum1和sum2,而不需要向C#里面那样事先声明,下面再看一个带流程控制的例子:

$names=“YangGuo”,“XiaoLongNv”,“GuoJing”,“HuangRong”
Foreach($name in $names){
     Write-Host $name
}

Windows PowerShell强大的一处在于,在PS脚本里可以直接调用任意.NET对象,比如以下代码就会调用New-Object命令创建一个.NET的DateTime对象:

$date=New-Object –TypeName System.DateTime –ArgumentList @(1525,8,10,0,0,0)
$message=“GuoJing was born at “+$date.ToLongDateString()
Write-Host $message

执行输出结果如下:

GuoJing was born at Monday,August 10,1525

PowerShell不仅可以创建新的.NET对象,还可以调用.NET对象的静态属性。例如,开发人员可以通过[System.DateTime]::Today的方式调用DateTime类的静态成员。

$today=[System.DateTime]::Today
Write-Host $today.ToLongDateString()
Write-Host $today.ToString(“MM/dd/yy”)
Write-Host $today.AddDays(100).ToString(“MMMM d”)

执行输出结果如下:

Wednesday,May 25,2011
05/25/11
September 2

PowerShell甚至可以调用COM对象,比如开发人员想通过PowerShell打开IE并进入到某个网站:

$ie=New-Object –ComObject “InternetExplorer.Application”
$ie.Navigate(“http://www.cnblogs.com/johnsonwong”)
$ie.Visible=$true

运行此脚本将打开IE,进入笔者的博客。