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

简介:

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

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

Windows 7和Windows Server 2008 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多第三方控件, 在2009年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脚本用简短几行代码 快速实现对固定链接文件本地下载:


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

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


 
 
  1. [void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')    
  2. $url = 'http://files.cnblogs.com/chenkai/WP7_LocalDBDemo.rar'   
  3. $local = "$home\powershellworkshop.zip"   
  4. $object = New-Object Microsoft.VisualBasic.Devices.Network    
  5. $object.DownloadFile($url, $local'''', $true, 500, $true'DoNothing'

 

现在加载Microsoft.VisualBasic.Devices.Network 空间. 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博客,原文链接:http://blog.51cto.com/chenkai/764633

相关文章
|
7月前
|
Unix Shell Windows
Windows PowerShell技巧:使用findstr实现类似grep的功能
显示带有线路编号**: `/N`选项将显示每条结果前面带有其在线路上出现位置编号。
1148 7
|
7月前
|
存储 Windows
Windows PowerShell操作:如何删除环境变量
此外,还有一些第三方工具可以用来管理环境变量,这些工具通常提供了更为用户友好的界面来添加、编辑或删除环境变量,但是使用PowerShell可以更直接地控制这些设置,并且可以很容易地集成到脚本中以自动化环境配置的管理。
971 7
|
7月前
|
开发框架 安全 .NET
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
.NET Framework是Windows平台的开发框架,包含CLR和FCL,支持多种语言开发桌面、Web应用。常用版本有3.5、4.5.2、4.8.1,系统可同时安装多个版本,确保软件兼容运行。
1689 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
|
JSON 数据格式
【Azure Fabric Service】演示使用PowerShell命令部署SF应用程序(.NET)
本文详细介绍了在中国区微软云Azure上使用Service Fabrics服务时,通过PowerShell命令发布.NET应用的全过程。由于Visual Studio 2022无法直接发布应用,需借助PowerShell脚本完成部署。文章分三步讲解:首先在Visual Studio 2022中打包应用部署包,其次连接SF集群并上传部署包,最后注册应用类型、创建实例并启动服务。过程中涉及关键参数如服务器证书指纹和服务端证书指纹的获取,并附带图文说明,便于操作。参考官方文档,帮助用户成功部署并运行服务。
406 74
|
区块链 C# Windows
PasteEx:一款.NET开源的Windows快捷粘贴神器
PasteEx:一款.NET开源的Windows快捷粘贴神器
314 17
|
Web App开发 C# Windows
一款.NET开源的Windows资源管理器标签页工具
一款.NET开源的Windows资源管理器标签页工具
308 5
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
421 9
|
Windows
Powershell 重新排列去重 Windows环境变量
【9月更文挑战第13天】本文介绍如何使用PowerShell对Windows环境变量进行重新排列和去重。首先通过`$env:`访问环境变量,接着使用`-split`命令分割路径,再利用`Select-Object -Unique`去除重复项。之后可根据需要对路径进行排序,最后将处理后的路径组合并更新环境变量。注意修改环境变量前应备份重要数据并了解潜在影响。
573 10
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)

热门文章

最新文章