程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Powershell大印象系列1:驚艷呀

Powershell大印象系列1:驚艷呀

編輯:關於.NET

一開始接觸POWERSHELL,是因為上司要求用腳本管理Hyper-V上面的操作系統和服務。實現一些產品在測試環境的部署和恢復。當然方法有很多,但是我第一時間,想起了現在比較流行的POWERSHELL. 並且找到了一個很方便的API: http://www.codeplex.com/PSHyperv . 對於完全沒有接觸過PS的我,我就開始看PSHyperV這個開源的類庫,有時候,我覺得看開源API的確是快速上手一門語言的辦法,當然,有一個比較好的IDE,高光一下裡面的語法那就更加不錯了。這個IDE 我選擇了PowerGUI(Free!). 一番速成之後,評估結束,寫了個文檔,就給我們的IT用去了。值得一提的是,WMI Object在POWERSHELL裡面的作用,當時我在想,沒有了WMI,powershell就不POWER了。因此驚艷1, WMI

1. WMI Object:

WMI功能非常強大,可以操作本地和遠程的電腦的服務,例如獲取遠程電腦的時間,設置遠程電腦的某些服務,設置IIS,當然,還要操作HYPER-V的服務。配合使用WMIQuery,簡直就方便到極點。

2. XML

旁邊有個同事總說, 罪惡的XML呀....本人基本同意,我還是喜歡簡單的JOSN多一點。但是在POWERSHELL裡面的XML就沒有那麼罪惡啦,使用非常簡單,例如:

<dataroot>

<abc><cde>罪惡</cde></abc>

</dataroot> 在文件 TEST.XML中

想拿到某個節點的內容,EASY到不得了,[xml]content = Get-Content test.xml

content.dataroot.abc.cde 這樣,就能夠獲得內容了。神了。Conent究竟是什麼,Content.GetType()之後發現,原來還是XmlDocument......PS一句,微軟的東西,功能總做得方便得不得了,但是背後,當然就是犧牲性能啦。

3. 對環境變量,對注冊表的操作

對環境變量和注冊表的操作,也是簡單得不了。$env:COMPUTERNAME ....

4. 一切皆為對象(PYTHON也這樣說過)

這個怎麼表達好呢。你可以這樣做 $files = dir. 然後 $files.GetType()

5. 擴展性超好

繼承一下powershell提供的CMDLET,Snapin,在C#裡寫一下,就可以有自己的SNAPIN了. 然後在POWERSHELL裡面加載一下Installutil,Add-PSSnapin.有人就有疑問,有啥好處呢? 我告訴你,你寫的SNAPIN,比起在POWERSHELL裡定義函數,你能獲得,按TAB的智能提醒,構建自己強大的GET-HELP(http://blogs.msdn.com/powershell/archive/2007/09/01/new-and-improved-cmdlet-help-editor-tool.aspx ),也就是幫助, 實現靈活的使用方式,強大的內置的校驗機制。

最後奉上,POWERSHELL之歌:http://landofsilly.mypodcast.com/2009/01/PowerShell_Wizard-177292.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved