我是PowerShell的新手,试图学习写东西的方法,我注意到在这种情况下我可以用很多不同的方式导出数据,我想问的是这种情况,
Get-Process | ConvertTo-Csv | Set-Content -Path .Process.txt
和:
Get-Process | Export-Csv -Path .Process.txt
两者都将进程列表导出到我的桌面上的CSV文件,并给出相同的结果。
第一个 :
如何从.NET文件对话框中获得映射networking驱动器的path
为什么从golang(golang)调用Powershell Start-Process不起作用?
为当前厨师 – 客户端运行设置环境variables
不能将文件复制到“test-Path”可以看到的path
如何在包含引号(“”)的batch file中运行命令?
将进程转换为CSV,然后将其写入文件。
第二个 :
将进程直接导出到文件。
这两种情况之间的区别是什么,性能有差异,时间执行差异还是其他我不知道的东西?
Windows:创build到不存在的驱动器的快捷方式不允许长文件夹和文件名
将Windows格式化的path转换为Unix样式
最简单/最短的命令在Visual Studio中作为构build事件运行PowerShell脚本
recursion显示在过去45天内修改的所有文件的频率分布
在Windows中的文件夹的shell快捷方式
他们几乎是一样的。 在性能和时间上不应该有太大的差别:
Measure-Command { Get-Process | ConvertTo-Csv | Set-Content -Path .Process.txt } Days : 0 Hours : 0 Minutes : 0 Seconds : 2 Milliseconds : 880 Ticks : 28801761 TotalDays : 3,33353715277778E-05 TotalHours : 0,000800048916666667 TotalMinutes : 0,048002935 TotalSeconds : 2,8801761 TotalMilliseconds : 2880,1761 Measure-Command { Get-Process | Export-Csv -Path .Process2.txt } Days : 0 Hours : 0 Minutes : 0 Seconds : 2 Milliseconds : 772 Ticks : 27724661 TotalDays : 3,20887280092593E-05 TotalHours : 0,000770129472222222 TotalMinutes : 0,0462077683333333 TotalSeconds : 2,7724661 TotalMilliseconds : 2772,4661
这是因为Export-CSV和ConvertTo-CSV运行相同代码的90%。 他们共享相同的助手类Microsoft.PowerShell.Commands.ExportCsvHelper来创建标题并将对象转换为csv。 唯一的区别是ConvertTo-CSV使用WriteObject()将CSV对象(字符串)写入管道,而Export-CSV直接使用StreamWriter将其写入文件。
要自己找到这个,你可以看看里面的Microsoft.PowerShell.Commands.Utility.dll 。 我不会直接发布代码,因为我不确定它是否合法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。