1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Windows PowerShell初体验——.NET对象支持

Windows PowerShell初体验——.NET对象支持

时间:2024-06-26 16:24:31

相关推荐

Windows PowerShell初体验——.NET对象支持

我个人很少用到Linux/Unix 操作系统. 对于不少Linux/Unix管理员在系统任务操作Shell一直保持很难理解. 后来从朋友公司听说他们测试队伍中专门保留了一个脚本Scirpt Shell 测试小组. 我一时更纳闷了. 当然这个问题知道我碰到Windows PowerShell-Windows出的一套Shell工具后 才渐渐理解.

Windows PowerShell是微软为Windows系统开发的Shell及脚本语言技术,它是一种新的命令行外壳和脚本语言,用于实现系统自动化管理。它的出现弥补了与Linux/Unix系统相比Windows在Shell方面的不足,这也就不难理解为什么微软从起一直在做方面努力 相继推出两个版本1.0/2.0 ,这两个版本的连续发布可以看出微软公司在马力十足的不断开发PowerShell,同时也为程序开发人员提供了一种更高效的编写脚本的工具,

Windows 7和Windows Server R2中已经整合了PowerShell 2.0: Windows 7下集成路径在附件中:

Windows PowerShell建立在.NET Framework 2.0/3.x的基础上, 和.NET公共语言运行时(CLR)和.NET框架上,它内部建立一个通信管道专门用来接受并返回.NET对象.

对脚本编程接触较少,今天将采用几个实际事例来验证Windows PowerShell(2.0) 对.NET对象的内部支持.

<1>准备工作

在进行验证之前. 我们有必要有一个好的编译工具.俗话说”公欲善其事必先利其器.”现在的Windows PowerShell已经发布到2.0版本 ,在Windows 7已经集成. 但是集成自带的图形操作界面ISE工具 . 总体给我感觉功能太多于单一. 没有字体调整. 没有详细调试执行信息提示界面.对>NET对象API没有提示界面. 我们需要一个更好用的工具——PowerShellAnalyzer

打开界面:

现在EditPlus和UltraEdit都已经出了powershell的语法文件,但是对Shell脚本编程功能更强的IDE只能算是PowerShellAnalyzer,用了N多第三方控件, 在6月份只能45天试用,现在已经全部免费开放这款强大的Shell脚本的IDE工具. 也是微软官方推荐第三方工具的首选.

下载地址:Shell Tools——PowerShellAnalyzer-Tool

<2>验证Shell——.NET对象支持

目前采用Shell版本是2.0, 请确认本机.NET的环境在2.0/3.5版本上. Shell直接集成与。Net CLR 之上. 这就为了我们直接在Shell脚本中创建.NET对象提供了可能.powershell可以很方便的使用.net的类库。使用 New-Object 可以实例化一个.net类. 例如我们常在网页操作文件下载. 我们同样可以直接Shell脚本用简短几行代码 快速实现对固定链接文件本地下载:

$getobject=New-ObjectNet.WebClient $downloadurl='/chenkai/WP7_LocalDBDemo.rar' $storepath="$home\LocalStroeFile.zip" $getobject.DownloadFile($downloadurl,$storepath) 通过New-Object 命令 新建一个NET.WebClient类 用来实现下载操作. $downloadurl指定的是一个下载文件路径. 问了演示目的当前指定文件大小只有756KB. $storepath存在在本地的路径. $home类似Web页面表达式一样在Shell脚本中自动解析到当前用户文件夹下. 最后直接调用WebClient类DownLoad方法实现对文件下载.下载结果:

下载成功. 但是整个过程没有任何提示.而且下载时间是相对于自己网络环境而言有很大影响. 我们是否有必要做一个下载进度条来显示下载的文件总体进度.不过很遗憾,简单的DownloadFile ( )方法没有提供下载进度条控制. 但是VBScript中有一个方法恰恰在空间work下提供了下载进度条控制方法:

[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') $url='/chenkai/WP7_LocalDBDemo.rar' $local="$home\powershellworkshop.zip" $object=New-ObjectMicrosoft.work $object.DownloadFile($url,$local,'','',$true,500,$true,'DoNothing')

现在加载Microsoft.work 空间. New出对象,后.DownLoadFile方法参数对比:

DownloadFile 方法 (Uri, String, String, String, Boolean, Int32, Boolean, UICancelOption)

Uri:String或Uri。要下载的文件的路径,包括文件名和主机地址。必选。String下载文件的文件名和路径。必选。String。要进行身份验证的用户名。默认值为空字符串 ""。String。要进行身份验证的密码。默认值为空字符串 ""。Boolean。指定是否显示操作进度。默认为False。Int32。以毫秒为单位的超时间隔。默认值为 100 秒。Boolean。指定是否改写现有文件。默认为False。UICancelOption。指定当用户在对话框(此对话框在 ShowUI 设置为True时显示)上单击“取消”或“否”时的行为。默认为ThrowException。执行过程中会提示出一个进度条页面:

本文转自chenkaiunion 51CTO博客,原文链接:/chenkai/764633

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。