日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

从零开始学PowerShell(9)创建PowerShell对象

發(fā)布時(shí)間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始学PowerShell(9)创建PowerShell对象 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們之前有一篇文章寫過如何獲取對(duì)象的信息,但是從沒有說過如何創(chuàng)建一個(gè)PowerShell對(duì)象。正巧也看到很多剛學(xué)PowerShell的朋友問起這個(gè)問題,今天就來說一說如何創(chuàng)建PowerShell對(duì)象。

從抽象層面來說,在PowerShell里哪怕我們定義一個(gè)普通變量也已經(jīng)是創(chuàng)建了一個(gè)對(duì)象。那么確切的說我們現(xiàn)在是想創(chuàng)建一個(gè)實(shí)例對(duì)象和COM對(duì)象。

在PowerShell里創(chuàng)建對(duì)象可以使用New-Object cmdlet來創(chuàng)建一個(gè)初始對(duì)象,要知道怎么用,還記得我們從零開始學(xué)PowerShell 系列開篇提到的嗎?不知道怎么用就用Get-Help看看。

可以從給出的使用語(yǔ)法看出,New-Object大致可以創(chuàng)建兩種方式的對(duì)象,一種是基于.NET Framework的實(shí)例類對(duì)象,另一種則是基于COM對(duì)象的。所以,我們就分別來看看如何創(chuàng)建這兩種對(duì)象。

.NET Framework我想不必多說,微軟自家的大基石Windows類框架庫(kù),我們的PowerShell底層就是構(gòu)建于此。所以PowerShell自然也能做到調(diào)用.NET Framework中的類庫(kù),而因?yàn)?NET提供了龐大的數(shù)據(jù)類庫(kù),所以我們就可以使用PowerShell去做到一些PowerShell目前還沒有提供的功能。

比如我們想創(chuàng)建一個(gè)日期類庫(kù)怎么做呢?可以像下面這樣去新建一個(gè)日期實(shí)例對(duì)象。

這里我們配合了使用了兩個(gè)參數(shù)TypeNameArgumentListTypeName是用于指定你基于哪個(gè).NET Framework來創(chuàng)建實(shí)例對(duì)象,而ArgumentList可以未必每次都指定,這取決于我們的類函數(shù)是否每次生成實(shí)例對(duì)象時(shí)對(duì)有必要傳參數(shù)。

有人可能要問,你怎么知道要傳哪些參數(shù)呢?那是因?yàn)槲胰ノ④浀腗SDN查DateTime Structure類的信息,DateTime的構(gòu)造函數(shù)提供了好幾種參數(shù)構(gòu)造方法,于是我選擇了新建實(shí)例對(duì)象時(shí),順便初始化,年月日時(shí)分秒數(shù)據(jù)對(duì)象。

最后$DateTime就是所創(chuàng)建的對(duì)象了,我們輸出這個(gè)對(duì)象可以看到我們之前傳遞的日期信息。

不過,你是否還記得我們之前有篇文章提到如何獲取對(duì)象里的信息嗎?沒錯(cuò),就是使用Get-Membercmdlet來查看對(duì)象含有哪些數(shù)據(jù)信息。?

我們?cè)谶@里發(fā)現(xiàn)有一個(gè)AddDays方法挺有意思,我們直接使用,并傳入一個(gè)參數(shù)10看看。它可以很方便的讓我們知道之前的日期往后推10天是什么日期。

接下來要說的是以創(chuàng)建COM組件的方式創(chuàng)建一個(gè)對(duì)象,可能有人不是很清楚什么是COM組件,簡(jiǎn)單的說在早期各種產(chǎn)品,軟件里有許許多多組件,但是很多功能組件安裝卸載變的麻煩。為此就出現(xiàn)了COM組件,就像樂高積木一樣,人們就可以開發(fā)COM組件像接口一樣與各種組件按照需要組合成一個(gè)功能完善的軟件。

下面我摘了一段百度百科給需要了解的人:

COM component(COM組件)是微軟公司為了計(jì)算機(jī)工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件開發(fā)技術(shù)。在COM構(gòu)架下,人們可以開發(fā)出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。由此帶來的好處是多方面的:可以將系統(tǒng)中的組件用新的替換掉,以便隨時(shí)進(jìn)行系統(tǒng)的升級(jí)和定制;可以在多個(gè)應(yīng)用系統(tǒng)中重復(fù)利用同一個(gè)組件;可以方便的將應(yīng)用系統(tǒng)擴(kuò)展到網(wǎng)絡(luò)環(huán)境下;COM與語(yǔ)言,平臺(tái)無關(guān)的特性使所有的程序員均可充分發(fā)揮自己的才智與專長(zhǎng)編寫組件模塊。

創(chuàng)建COM實(shí)例對(duì)象和之前創(chuàng)建基于.NET Framework的方式基本差不多,我們來快速用基于COM組件的方式創(chuàng)建一個(gè)實(shí)例對(duì)象,這里我們只需要配合?COMObject參數(shù)指定專門的COM 對(duì)象(注:在我們創(chuàng)建新對(duì)象的時(shí)候TypeName參數(shù)是不能和COMObject同時(shí)混用的)。

我們用Get-Member查看對(duì)象信息后打算使用IsServiceRunning方法,這個(gè)方法是用來查看當(dāng)前要查看的某個(gè)服務(wù)是否還在運(yùn)行中。?

PowerShell的強(qiáng)大也正是因?yàn)闃?gòu)建于背后強(qiáng)大的類型模型框架,因此我們可以借助.NET Framework或者COM組件對(duì)象來完成PowerShell暫時(shí)還無法完成的功能。?

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的从零开始学PowerShell(9)创建PowerShell对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。