• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Windows Powershell导出管道结果

    可以将管道的结果转换成文本输出,默认是Out-Default。可以通过Get-Command -verb out查看Powershell都有哪些输出的命令。

    复制代码 代码如下:

    PS C:PowerShell> get-command -Verb out

    CommandType Name         Definition
    ----------- ----         ----------
    Cmdlet      Out-Default  Out-Default [-InputObject ]
    Cmdlet      Out-File     Out-File [-FilePath]  [[-Encoding]
    Cmdlet      Out-GridView Out-GridView [-InputObject ]
    Cmdlet      Out-Host     Out-Host [-Paging] [-InputObject ]
    Cmdlet      Out-Null     Out-Null [-InputObject ] [-Verbose]
    Cmdlet      Out-Printer  Out-Printer [[-Name] ] [-InputObject
    Cmdlet      Out-String   Out-String [-Stream] [-Width ]
    Out-Default 将输出发送到默认的格式化程序和默认的输出 cmdlet。
    Out-File 将输出发送到文件。
    Out-GridView 将输出发送到单独窗口中的交互表。
    Out-Host 将输出发送到命令行。
    Out-Null 删除输出,不将其发送到控制台。
    Out-Printer 将输出发送到打印机。
    Out-String 将对象作为一列字符串发送到主机。

    吸收输出结果

    有的命令无论执行成功或失败都会有输出,有时不需要这些输出时可以使用 | Out-Null,这条命令的作用和 >$null 一样。尤其在函数中使用比较多,因为如果没有特别指明return 。Powershell函数会把输出结果作为函数的返回值。为了避免这种麻烦,通常在管道后加一条命令Out-Null 或 >$null吸收输出结果。

    复制代码 代码如下:

    PS C:PowerShell> md ABC

        目录: C:PowerShell

    Mode                LastWriteTime     Length Name
    ----                -------------     ------ ----
    d----        2011/12/19     17:05            ABC

    PS C:PowerShell> md ABD >$null
    PS C:PowerShell> md ABE | Out-Null

    修改管道格式

    之前讨论过,Powershell默认会在每行命令的末尾追加一条Out-Default,Out-Default默认包含了一条Out-Host,那是不是Out-Host就是英雄无用武之地了。事实上,可以通过Out-Host控制管道的版式。
    Powershell不但会自动把管道结果发送到输出设备上,而且还会把管道结果转换成可读的文本。这个自动转换与Format-Table有点像。但是完全依靠自动转换有时会碰到很奇怪的输出结果。
    例如当单独使用Get-Service时,结果会以表格的形式输出,但是使用pwd;Get-Service时Service信息以列表形式输出。

    复制代码 代码如下:

    PS C:PowerShell> Get-Service

    Status   Name               DisplayName
    ------   ----               -----------
    Running  AdobeARMservice    Adobe Acrobat Update Service
    Stopped  AeLookupSvc        Application Experience
    Stopped  ALG                Application Layer Gateway Service

    PS C:PowerShell> pwd;Get-Service

    Path
    ----
    C:PowerShell

    Status      : Stopped
    Name        : THREADORDER
    DisplayName : Thread Ordering Server

    Status      : Running
    Name        : TrkWks
    DisplayName : Distributed Link Tracking Client

    第二行使用了两条命令,通过分号间隔。但是为什么Service信息会以列表显示 呢?因为经过Powershell的解释器处理,上面例子中的第二条命令会变成:
    { pwd;Get-Service} | Out-Default
    Powershell在命令中没有发现特别指定的版式信息,就会尝试从第一条命令的第一个结果对象中寻找线索。并且把这种版式强加给紧接着的其它命令。
    怎样避免上述问题,最好的办法就是要明确指定。
    pwd;Get-Service | Out-Host

    强制以文本显示

    Powershell的文本转换一般发生在管道的末尾,但是如果需要对文本处理可是强制转换成文本。

    复制代码 代码如下:

    PS C:PowerShell> ls . -Recurse | Out-String

     目录: C:PowerShell

    Mode         LastWriteTime   Length Name
    ----         -------------   ------ ----
    d---- 2011/12/19     17:05          ABC
    d---- 2011/12/19     17:06          ABD
    d---- 2011/12/19     17:06          ABE
    d---- 2011/11/29     18:21          myscript
    -a--- 2011/12/19     11:31      500 a.html

    PS C:PowerShell> (ls | Out-String -Stream).gettype()
    IsPublic IsSerial Name     BaseType
    -------- -------- ----     --------
    True     True     Object[] System.Array

    Excel导出对象

    管道结果导出为文本文件看起来不规整,越读起来也不方便。所以最好导出为Excel格式“csv”,这样的文件默认支持Microsft Excel程序打开,并处理。

    复制代码 代码如下:

    PS C:PowerShell> Get-Service | Export-Csv a.csv
    PS C:PowerShell> .a.csv

    使用这些导出命令时,切忌不要在管道中使用Format-Table,否则导出的结果不正常,自己可以测试。那怎样选择属性呢?可是使用Select-Object。

    Html导出对象

    Html导出对象和Excel导出大同小异。

    复制代码 代码如下:

    PS C:PowerShell> Get-Service | ConvertTo-Html -Title "ls result" | Out-File a.html
    PS C:PowerShell> .a.html

    您可能感兴趣的文章:
    • Shell脚本中管道的几种使用实例讲解
    • Shell脚步攻略之管道重定向基础
    • PowerShell管道入门必看篇(管道例子大全)
    • linux shell 管道命令(pipe)使用及与shell重定向区别
    • PowerShell实现按条件终止管道的方法
    • PowerShell中终止管道的方法
    • PowerShell入门教程之PowerShell管道介绍
    • Windows Powershell过滤管道结果
    • shell脚本一键同时推送代码至github和gitee的解决办法
    • 如何利用 tee 命令调试shell脚本中的管道
    上一篇:Powershell小技巧--远程对比服务配置
    下一篇:Windows Powershell扩展类型系统
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Windows Powershell导出管道结果 Windows,Powershell,导出,管道,