将txt文件转换为csv格式的powershell脚本

13

我在PowerShell中执行了一些命令后得到了一个以制表符分隔的文本文件,现在我想将这个以制表符分隔的文件转换为CSV格式,该怎么做?


你能详细说明一下你是如何得到一个制表符分隔的文件的吗?很可能你正在把事情搞得比必要的更加复杂。 - jon Z
抱歉没有详细说明。实际上,我正在循环执行get-process命令,以获取有关进程的详细信息,并将其更新到某个间隔的文本文件中。现在当进程停止时,我的脚本也会停止。在此之前,我希望在停止脚本之前读取文本文件并将数据显示在CSV文件中,同时包括其标题。因为在MSExcel中打开它会得到好看的结果。 - Abhishek_Mishra
在您的情况下,最好直接将数据导出为csv格式。类似这样:while ($true) {sleep 5; ps iexplore | select Handles, NPM, PM, WS, VM, CPU, Id, Name, @{N="SampleDateTime";E={(get-date)}} | export-csv -Append -NoTypeInformation process.csv} - jon Z
在这种情况下,我遇到了一个关于追加数据的问题,所以我没有尝试过。Append 不起作用。 - Abhishek_Mishra
它在我的机器上可以运行。请考虑发布示例代码,其中追加操作未按预期工作(作为单独的问题)。 - jon Z
1个回答

25

一个以制表符分隔的文本文件可以被视为一个CSV文件,只需将逗号替换为制表符作为分隔符即可。

转换方法:

import-csv tabdelimitedfile.txt -delimiter "`t" | export-csv csvfile.csv

2
在该行末尾添加-NoType将消除输出文件顶部的“#TYPE System.Management.Automation.PSCustomObject”行。 - Phoenix14830
1
这似乎添加了双引号,有没有办法省略双引号? - Pasan Eeriyagama

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接