Char 06 管道:连接命令

Desc :

  PowerShell 的 管道 ,类似于 Unix 中的 Shell 

 

1  Dir | More

 

2  输出结果到 csv or html ]

  1)  Get-Process | Export-CSV process.csv

        几乎可以把所有的  Get-Cmdlet 的 用管道输出到 CSV 

     Notepad process.csv 

        可以发现 , CSV 中的数据,多于 命令行中,显示的信息 , 因为 PowerShell 使用的 微软提供的配置文件,将 最重要的信息,显示到屏幕上

     Import-CSV process.csv

      

  2)  Get-Process | Export-CliXML.xml

     Import-CliXML XX.xml

     NOTE :

      所有的 Export-XXX , Import-XXX 的 cmdlets 都强制需要提供 文件名作为 参数

    

PS C:\windows\system32> Get-Command -verb Import

CommandType     Name                                               ModuleName                                                                                                                                  
-----------     ----                                               ----------                                                                                                                                  
Function        Import-IseSnippet                                  ISE                                                                                                                                         
Cmdlet          Import-AGRestApi                                   AWSPowerShell                                                                                                                               
Cmdlet          Import-Alias                                       Microsoft.PowerShell.Utility                                                                                                                
Cmdlet          Import-BinaryMiLog                                 CimCmdlets                                                                                                                                  
Cmdlet          Import-Clixml                                      Microsoft.PowerShell.Utility                                                                                                                
Cmdlet          Import-Counter                                     Microsoft.PowerShell.Diagnostics                                                                                                            
Cmdlet          Import-Csv                                         Microsoft.PowerShell.Utility                                                                                                                
Cmdlet          Import-EC2Image                                    AWSPowerShell                                                                                                                               
Cmdlet          Import-EC2Instance                                 AWSPowerShell                                                                                                                               
Cmdlet          Import-EC2KeyPair                                  AWSPowerShell                                                                                                                               
Cmdlet          Import-EC2Snapshot                                 AWSPowerShell                                                                                                                               
Cmdlet          Import-EC2Volume                                   AWSPowerShell                                                                                                                               
Cmdlet          Import-LocalizedData                               Microsoft.PowerShell.Utility                                                                                                                
Cmdlet          Import-Module                                      Microsoft.PowerShell.Core                                                                                                                   
Cmdlet          Import-PSSession                                   Microsoft.PowerShell.Utility               

 

PS C:\windows\system32> Get-Command -verb Export

CommandType     Name                                               ModuleName                                                                                                                                  
-----------     ----                                               ----------                                                                                                                                  
Cmdlet          Export-Alias                                       Microsoft.PowerShell.Utility                                                                                                                
Cmdlet          Export-BinaryMiLog                                 CimCmdlets                                                                                                                                  
Cmdlet          Export-Clixml                                      Microsoft.PowerShell.Utility                                                                                                                
Cmdlet          Export-Console                                     Microsoft.PowerShell.Core                                                                                                                   
Cmdlet          Export-Counter                                     Microsoft.PowerShell.Diagnostics                                                                                                            
Cmdlet          Export-Csv                                         Microsoft.PowerShell.Utility                                                                                                                
Cmdlet          Export-FormatData                                  Microsoft.PowerShell.Utility                                                                                                                
Cmdlet          Export-ModuleMember                                Microsoft.PowerShell.Core                                                                                                                   
Cmdlet          Export-PSSession                                   Microsoft.PowerShell.Utility                                                                                                                

 

  3  对比文件

    Export-CliXML 比 Export-CSV 包含更多的信息    

    

PS D:\test_powershell> diff -ReferenceObject (Import-Clixml  .\before.xml) -DifferenceObject ( Import-Clixml .\after.xml )

InputObject                                                                                             SideIndicator                                                                                          
-----------                                                                                             -------------                                                                                          
System.Diagnostics.Process (YoudaoDictHelper)                                                           =>                                                                                                     
System.Diagnostics.Process (YoudaoIE)                                                                   =>                                                                                                     
System.Diagnostics.Process (YoudaoWSH)                                                                  =>                                                                                                     
System.Diagnostics.Process (ZhuDongFangYu)                                                              =>                                                                                                     

 

3  管道 传输到 文件 或者 打印机上

PS D:\test_powershell> dir > directorylist.txt

PS D:\test_powershell> Dir | Out-File .\directorylist_2.txt  【底层调用】

PS D:\test_powershell> Dir | Out-Default | Out-Host


    目录: D:\test_powershell


Mode                LastWriteTime     Length Name                                                                                                                                                              
----                -------------     ------ ----                                                                                                                                                              
-a---         2016/6/20     11:12   20117840 after.xml                                                                                                                                                         
-a---         2016/6/20     11:11   19724196 before.xml                                                                                                                                                        
-a---         2016/6/20     11:17       2458 directorylist.txt                                                                                                                                                 
-a---         2016/6/20     11:17       2928 directorylist_2.txt                                                                                                                                              HT

  Note : help Out* == Get-Command Out* == Get-Command -Verb Out

4  转换成 HTML 

  Get-Service | ConvertTo-HTML | Out-File services.html

  ConvertTo-HTML | Out-File services.html == Export-XX 

  存在的意义?

    有时,只想转换,而不保存

  

PS D:\test_powershell> Help ConvertTo*

Name                              Category  Module                    Synopsis                                                                                                                                 
----                              --------  ------                    --------                                                                                                                                 
ConvertTo-Csv                     Cmdlet    Microsoft.PowerShell.U... 将对象转换为一系列逗号分隔值 (CSV) 可变长度字符串。                                                                                                            
ConvertTo-Html                    Cmdlet    Microsoft.PowerShell.U... 将 Microsoft .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。                                                                                     
ConvertTo-Json                    Cmdlet    Microsoft.PowerShell.U... 将对象转换为 JSON 格式的字符串                                                                                                                       
ConvertTo-Xml                     Cmdlet    Microsoft.PowerShell.U... 创建对象的基于 XML 的表示形式。                                                                                                                       
ConvertTo-SecureString            Cmdlet    Microsoft.PowerShell.S... ...                                                                                                                                      

 

5  使用 Cmdlets 修改系统 : 终止进程 和 停止服务

  Get-Process | Stop-Process :会依次检索&& stop , 会宕机哦

  Get-Process -name Notepad | Stop-Process

  

PS D:\test_powershell> $ConfirmPreference
High

  对于 Stop-Process , 会 询问 Are You Sure ?

  Get-Service -name Notepad | Stop-Process -confirm 

    每一次 都询问

  

6  常见误区

  在 PowerShell 中, Export-XX , Import-XX , 是一组命令, Import-XX ,会 尝试解析,编译这些数据

  仅从 一个文本文件中读取内容,而不需要解析数据时,才使用 Get-Content, 只用于,只需要,原始内容时

 

Test :

  Export-CSV  改变默认的分隔符

 

 

    

posted @ 2016-06-20 12:31  NancyYe  阅读(208)  评论(0编辑  收藏  举报