《Learn Windows PowerShell in a Month of Lunches Third Edition》读书笔记——CHAPTER 6 The pipeline

本章节介绍了PowerShell中如何将数据导出到CSV和XML文件,使用`Export-Csv`和`ConvertTo-Xml`命令。还探讨了文件比较、输出重定向到文件或打印机的方法,如`Compare-Object`和重定向符号`>`。此外,讲解了如何将输出转换为HTML,以及使用`Stop-Process`和`Stop-Service`来修改系统状态。最后,强调了在读取文件时避免混淆,推荐使用适当的命令进行解释和解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6.2 Exporting to a CSV or an XML file

6.2.1 Exporting to CSV

Get-Process | Export-CSV procs.csv
执行了以上命令后,我们也可以用 Import-CSV procs.csv 来将该文件导入到shell中阅读。

6.2.2 Exporting to XML

我们可以使用cmdlet Export-CliXML 以及 Import-CliXML 分别达到Export和Import的目的。

6.2.3 Comparing files

命令 Compare-Object 可以用来比较文本,其别名是 Diff
结果中的 <= 表明只有左边有, => 表明只有右边有。
使用参数 -property 可以列出文件所有内容。

6.3 Piping to a file or a printer

我们可以使用符号 < 来重定向输出至其他地方,如:
Dir > DirectoryList.txt
但是,输入以上命令的时候,PowerShell实际上执行的是:
Dir | Out-File DirectoryList.txt

PowerShell有一系列以 Out- 开头的cmdlet。其中一个叫 Out-Default ,当你不指定任何不同的 Out- cmdlet的时候,shell会默认使用该cmdlet,如:
Dir 实际上执行的是 Dir | Out-Default
使用 Dir | Out-Default | Out-Host 也可以达到同样的效果,其中 Out-Host 将信息显示在屏幕上。

Out-Printer 会将命令执行结果保存为pdf,如 Get-Service | Out-Printer
Out-GridView 会将结果以弹窗的形式展示,如Get-Service | Out-GridView

我们可以使用 Help Out*Get-Command Out* 或者 Get-Command -verb Out 来查询更多 Out- cmdlet。

6.4 Converting to HTML

Pipe your command to ConvertTo-HTML 。如 Get-Service | ConvertTo-HTML ,不需要文件名,因为只是输出,并不存储。
如果想要将输出结果保存起来,可以使用 Get-Service | ConvertTo-HTML | Out-File services.html

同样,以 ConvertTo- 开头的cmdlet还有 ConvertTo-CSVConvertTo-XML 等,这些都不会在磁盘上创建文件。如果想要创建文件,我们可以将结果pipe到 Out-File中。

6.5 Using cmdlets that modify the system: killing processes and stopping services

Get-Process | Stop-Process 会停止计算机中的每一个进程,所以不要在自己的电脑上运行这个命令。如果想尝试的话,可以在虚拟机中尝试。

我们可以通过 -name 参数指定停止进程的名字,如 Get-Process -name Notepad | Stop-Process

同样的 Get-Service 的输出结果可以被pipe到像 Stop-Service, Start-Service, Set-Service 这样的cmdlet中。

6.6 Common points of confusion

我们可以使用命令 Get-Content 或者其别名 TypeCat 来读取文件到shell中,如:

PS C:\> get-eventlog -LogName security -newest 5 | export-csv events.csv
PS C:\> Get-Content .\events.csv

但是,这样读取的话,看起来会很乱。想要看的更舒服,就要使用对应的命令 Import- 来interpret和parse,如 PS C:\> import-csv .\events.csv
所以,只有当我们想要对原生文件进行处理而不是看的时候,才用 Get-Content

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值