Command-separated Value
或 CSV
文件是一种非常流行的文本文件类型,用于不同的目的。CSV的特殊之处在于它能够通过用逗号分隔值或列来存储结构化数据。CSV文件与Excel文件兼容,可以导入和导出。
导出为逗号分隔的CSV文件
我们将从一个简单的例子开始。 Get-Process
命令用于列出当前正在运行的进程,其中包含不同的信息,如句柄、NPM、CPU、ID、ProcessName等。我们可以使用命令Export CSV来存储这些用命令分隔的进程信息。
PS>获取进程
![图片[1]-PowerShell导出CSV命令教程及示例-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/05/poftut_image-32.png)
现在我们可以通过重定向Get进程输出,将这些正在运行的进程信息放入CSV文件中。我们将提供带有选项的文件名 -Path
. 文件名将为ProcessList.csv。
PS>获取进程|导出CSV-路径ProcessList.CSV
![图片[2]-PowerShell导出CSV命令教程及示例-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/05/poftut_image-33.png)
或者,我们可以使用-Path选项提供不同的目录。在下面的命令中,我们将把ProcessList.csv文件放入 C:Usersİsmail BaydanDesktop
.
PS>获取内容'C:用户İsmail BaydanDesktopProcessList.csv'
为CSV文件设置分隔符
分隔符是CSV文件的重要组成部分。默认情况下,CSV文件使用命令作为分隔符。但我们可以随意改变分隔符。我们将使用-Delimeter选项来设置不同的分隔符。在下面的示例中,我们将等号=设置为分隔符。将分隔符放在双引号内是防止错误的一个非常好的方法。
PS>获取进程|导出CSV-分隔符“=”-Path ProcessList.CSV
导出为分号分隔的CSV文件
逗号是CSV文件的标准分隔符。但是我们可以使用不同的分隔符来分隔列。在某些情况下,可以在CSV文件中使用逗号来表示要放入CSV文件的内容。这将使CSV文件崩溃,因为分隔符和内容将相同,并且用分隔符分析内容时容易出错。因此,命令分隔符的好替代方法是分号,它很少在CSV文件内容中使用。在下面的示例中,我们将分号设置为分隔符。
PS>获取进程|导出CSV-分隔符“;”-路径ProcessList.csv
选择要写入CSV文件的属性
到目前为止,我们已经使用了getprocess命令,它将列出当前正在运行的进程的所有属性。在某些情况下,我们不需要将所有属性放入CSV文件中。我们可以选择哪些属性可以放入CSV文件。我们将使用命令 Select-Object
以及它的选择 -Property
就像下面一样。
PS>获取进程|选择对象-属性ProcessName,Id |导出CSV-路径ProcessList.CSV
![图片[3]-PowerShell导出CSV命令教程及示例-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/05/poftut_image-34.png)
附加到现有CSV文件
Export CSV命令的另一个用例是将新的CSV内容添加到现有的CSV内容中。我们可以用这个选项 -Append
它将向现有文件中添加新的CSV内容。
PS>获取进程|导出CSV-分隔符-追加-路径ProcessList.CSV
不覆盖现有CSV文件
默认情况下,命令Export CSV将在没有任何警告的情况下覆盖现有文件。我们可以通过选择 -NoClobber
这将不会覆盖现有的文件和打印和错误实时给定文件allready存在。
PS>获取进程|导出CSV-NoClobber-Path ProcessList.CSV
![图片[4]-PowerShell导出CSV命令教程及示例-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/05/poftut_image-35.png)
覆盖只读文件
默认情况下,可以编辑只读文件,并在默认情况下添加。但是Export CSV命令可以更改只读属性进行编辑,然后恢复为只读。我们将使用选项强制写入操作 -Force
就像下面一样。
PS>获取进程|导出CSV-附加-强制-路径ProcessList.CSV
设置CSV文件编码
由于CSV文件是一个文本文件,它有一个编码选项。默认情况下,UTF-8是文本和CSV文件的默认编码。但在某些情况下,我们可能需要更改默认编码并设置特定编码。我们可以使用选项-Encoding并提供类似ASCII的编码名称。在下面的示例中,我们将CSV文件编码设置为ASCII。
PS>获取进程|导出CSV-编码ASCII-路径ProcessList.CSV
下面是可用于导出CSV的流行和可用的编码格式。
- ASCII码
- 双字节Unicode
- 原始设备制造商
- Unicode码
- UTF7型
- UTF8型
- UTF8物料清单
- UTF8NoBOM公司
- UTF32型