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:windowssystem32> 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:windowssystem32> 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: est_powershell> diff -ReferenceObject (Import-Clixml .efore.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: est_powershell> dir > directorylist.txt
PS D: est_powershell> Dir | Out-File .directorylist_2.txt 【底层调用】
PS D: est_powershell> Dir | Out-Default | Out-Host 目录: D: est_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: est_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: est_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 改变默认的分隔符