zoukankan      html  css  js  c++  java
  • PowerShell为什么强大

    windows 操作系统 和office办公软件,如此之优秀,微软也没敢命名为PowerOS 和 PowerOffice,但是在Monad(PowerShell的前身)发布后的第二年(2006年),微软就直接就发布了Windows PowerShell 1.0,并且”大言不惭“地命名为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_MACHINESOFTWAREMicrosoft.NETFramework 下  ‘Enable64Bit’的值是多少?
        1
        (Get-ItemProperty -Path hklm:SOFTWAREMicrosoft.NETFramework ).Enable64Bit
      7. [证书]  指纹为[28DE15612AFF1CD69596AB17AF06AE86CB9C003B]的证书在证书存储区吗?
        1
        2
        ls Cert:LocalMachineMy |
         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
  • 相关阅读:
    反编译Silverlight项目
    Android 程序中像素(px)跟 单位dp(dip)之间的转换
    保存RichTextBox的文本到数据库,以及如何对RichTextBox的Document做绑定
    做事情要有五个w一个h,做项目也受用
    把RichTextBox的内容保存到数据库
    Android横竖屏切换总结
    64操作系统编译出错。The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
    超过连接数时强行登陆3389(远程桌面)的方法
    Android 4.0新增WiFiDirect功能
    前缀和 与 树状数组
  • 原文地址:https://www.cnblogs.com/MichaelShang/p/4520256.html
Copyright © 2011-2022 走看看