[Windows PowerShell03]-PowerShell面向对象

本文深入探讨了PowerShell中面向对象的特性,并通过实例展示了如何使用PowerShell实现C#代码的功能,具体包括进程管理、对象属性获取、事件与方法的调用等,以及如何创建简单的Winform窗口应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         PowerShell作为服务器管理利器,对于进程的管理自然是做得很到位的,很自然地我们能想到如何获取服务器的所有进程。

         

         我们在PowerShell脚本环境下执行gps命令(gps命令是Get-Process命令的Alias)我们可以得到进行的一些信息,进程的句柄,CPU累计运行时间,进程ID等等。

         在DOS环境下我们可以用notepad命令启动记事本,这里我们也可以这样做。使用notepad命令同样可以启动记事本,这个不是重点,我们想查看记事本的进程改如何做呢?我们可以通过以下命令来做。


可以看到Notepad命令进程的一些情况,下面我们来说说PowerShell面向对象的事情。

这里的$Process变量的值就是获取到的Notepad的进程的实例,这样的话变量代表了这个对象,为什么我们说这是一个对象呢,我们通过Get-Member可以获取对象的属性、事件及方法,这是对象的典型特征。

PS C:\Users\Administrator> $process.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                                  --------
True     False    Process                                  System.ComponentModel.Component

通过GetType我们可以看出这个对象的类型是System.ComponentModel.Component,跟.net的对象是一样的。

 $process.Kill()可以杀死进程, 我们发现调用Kill方法的形式和.net的C#都是一样的。

能够更好地说明面向对象的特性的例子如下:

Add-Type -AssemblyName System.Windows.Forms
$form = New-Object Windows.Forms.Form  
$form.Text = "My First Form"
$button = New-Object Windows.Forms.Button
$button.text="Push Me!"
$button.Dock="fill"
$button.add_click({$form.close()})
$form.controls.add($button)
$form.Add_Shown({$form.Activate()})
$form.ShowDialog()

这个是不是和C#的代码非常像,是的,这个其实就是一个Winform的窗体,在PowerShell下执行的效果如下


所以,PowerShell里是可以写C# code的。

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值