PowerShell爲什麼強大

微軟是一個很”低調”的公司,取名爲微軟,感覺有“微微軟下去”的意思,這是個玩笑了。windows 操作系統 和office辦公軟件,如此之優秀,微軟也沒敢命名爲PowerOS 和 PowerOffice,但是在Monad(PowerShell的前身)發佈後的第二年(2006年),微軟就直接就發佈了Windows PowerShell 1.0,並且”大言不慚“地命名爲PowerShell,這也有點太不淡定了。

今天我根據自己的體驗來稍微總結一下爲什麼PowerShell如此之強大。

爲什麼PowerShell如此之強大

爲什麼PowerShell如此之強大?

破天荒的方便

諸如存儲計算中GB,MB,KB單位等;數組聲明中的1..n和下標爲-1的處理;還有所見即所得,通俗易懂的動詞+名詞結構Cmdlet。

面向對象

與面向過程相比,面向對象更方便更容易描述現實世界,也算趕上了時髦。

綁上.NET這棵大樹

正所謂大樹下面好乘涼,PowerShell綁上.NET這個大款了,藉助.NET Framework平臺強大的類庫,幾乎讓一切都成爲可能。

強大的兼容性

完全兼容windows 平臺上其它調用,如可執行文件(exe),批處理bat和vb script等。

基於平臺的可擴展性

微軟有個優點,與應用相比,它更喜歡做平臺。PowerShell早已變成一個平臺,在PowerShell 剛發佈的第二年,微軟的System Center Operations Manager 和 SharePoint就提供了針對該平臺的組件,後來的活動目錄,Hyper-V,Windows Azure,Office 365就更不用說了。除了微軟,亞馬遜的雲平臺管理,Dell的out-of-hand 管理,也都提供了基於PowerShell的管理組件。PowerShell 儼然變成了一個標準,變成了一個規範。

舉例介紹

如果您第一次聽說過PowerShell,想稍微觀望下,且看下面的10個例子。

  1. [數學計算]  (39+79-51)*497/28 = ?
    心算再快,應當也沒有敲回車鍵快吧:

    1
    2
    PS> (39+79-51)*497/28
    1189.25
  2. [日期] 距離下一個情人節還有多少分鐘?
    我知道距離多少天好算,如果變成分鐘呢?


    1
    2
    3
    4
    5
    6
    7
    8
    $now=Get-Date
    $day=[datetime]'2-14'
    if($now -lt $day ){
     $day.Subtract($now).TotalMinutes
    }
    else{
     $day.AddYears(1).Subtract($now).TotalMinutes
    }
  3. [容量]  3GB > 3145726KB嗎  ?

    1
    2
    PS> 3gb -gt 3145726kb
    True
  4. [ID]能產生一個GUID嗎?

    1
    2
    3
    4
    5
    PS> [guid]::NewGuid()
     
    Guid
    ----
    0f283ab4-f402-400c-98ce-359442f11f1a
  5. [文件] Windows目錄下所有可執行文件exe的大小是多少?

    1
    dir $env:windir -Filter *.exe | measure -Sum Length
  6. [註冊表]  註冊表路徑HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 下  ‘Enable64Bit’的值是多少?

    1
    (Get-ItemProperty -Path hklm:SOFTWARE\Microsoft\.NETFramework ).Enable64Bit
  7. [證書]  指紋爲[28DE15612AFF1CD69596AB17AF06AE86CB9C003B]的證書在證書存儲區嗎?

    1
    2
    ls Cert:\LocalMachine\My\ |
     where { $_.Thumbprint -eq '28DE15612AFF1CD69596AB17AF06AE86CB9C003B' }
  8. [服務]  打印機服務有沒有啓動呢?

    1
    Get-Service spooler
  9. [進程]  當前運行了多少個IE進程?

    1
    (Get-Process iexplore ).count
  10. [報表]  將所有運行的進程信息導出爲HTML報表?

    1
    Get-Process ConvertTo-Html Out-File a.html

更多內容請參閱:PowerShell在線教程

本文鏈接: http://www.pstips.net/why-is-powershell-powerful.html
請尊重原作者和編輯的辛勤勞動,歡迎轉載,並註明出處!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章