[玩转系统] 转换为 Csv (Microsoft.PowerShell.Utility)
作者:精品下载站 日期:2024-12-14 02:08:21 浏览:12 分类:玩电脑
转换为 Csv (Microsoft.PowerShell.Utility)
ConvertTo-Csv
模块 :Microsoft.PowerShell.Utility将 .NET 对象转换为一系列字符分隔值 (CSV) 字符串。
句法
ConvertTo-Csv
[-InputObject] <PSObject>
[[-Delimiter] <Char>]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[-NoHeader]
[<CommonParameters>]
ConvertTo-Csv
[-InputObject] <PSObject>
[-UseCulture]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[-NoHeader]
[<CommonParameters>]
描述
ConvertTo-CSV
cmdlet 返回一系列表示您提交的对象的字符分隔值 (CSV) 字符串。然后,您可以使用 ConvertFrom-Csv
cmdlet 从 CSV 字符串重新创建对象。从 CSV 转换的对象是原始对象的字符串值,包含属性值,不包含方法。
您可以使用 Export-Csv
cmdlet 将对象转换为 CSV 字符串。 Export-CSV
与 ConvertTo-CSV
类似,不同之处在于它将 CSV 字符串保存到文件中。
ConvertTo-CSV
cmdlet 具有用于指定逗号以外的分隔符或使用当前区域性作为分隔符的参数。
示例
示例 1:将对象转换为 CSV
此示例将 Process 对象转换为 CSV 字符串。
Get-Process -Name pwsh | ConvertTo-Csv -NoTypeInformation
"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"pwsh","8","950","2204001161216","100925440","59686912","67104", ...
Get-Process
cmdlet 获取Process 对象并使用Name 参数指定PowerShell 进程。流程对象沿着管道发送到 ConvertTo-CSV
cmdlet。 ConvertTo-CSV
cmdlet 将对象转换为 CSV 字符串。 NoTypeInformation 参数从 CSV 输出中删除 #TYPE 信息标头,在 PowerShell 6 中不需要。
示例 2:将 DateTime 对象转换为 CSV
此示例将 DateTime 对象转换为 CSV 字符串。
$Date = Get-Date
ConvertTo-Csv -InputObject $Date -Delimiter ';' -NoTypeInformation
"DisplayHint";"DateTime";"Date";"Day";"DayOfWeek";"DayOfYear";"Hour";"Kind";"Millisecond";"Minute";"Month";"Second";"Ticks";"TimeOfDay";"Year"
"DateTime";"Friday, January 4, 2019 14:40:51";"1/4/2019 00:00:00";"4";"Friday";"4";"14";"Local";"711";"40";"1";"51";"636822096517114991";"14:40:51.7114991";"2019"
Get-Date
cmdlet 获取DateTime 对象并将其保存在$Date
变量中。 ConvertTo-Csv
cmdlet 将DateTime 对象转换为字符串。 InputObject 参数使用存储在 $Date
变量中的 DateTime 对象。 Delimiter 参数指定一个分号来分隔字符串值。 NoTypeInformation 参数从 CSV 输出中删除 #TYPE 信息标头,在 PowerShell 6 中不需要。
示例 3:将 PowerShell 事件日志转换为 CSV
此示例将 PowerShell 的 Windows 事件日志转换为一系列 CSV 字符串。
(Get-Culture).TextInfo.ListSeparator
Get-WinEvent -LogName 'PowerShellCore/Operational' | ConvertTo-Csv -UseCulture -NoTypeInformation
,
"Message","Id","Version","Qualifiers","Level","Task","Opcode","Keywords","RecordId", ...
"Error Message = System error""4100","1",,"3","106","19","0","31716","PowerShellCore", ...
Get-Culture
cmdlet 使用嵌套属性 TextInfo 和 ListSeparator 并显示当前区域性的默认列表分隔符。 Get-WinEvent
cmdlet 获取事件日志对象并使用LogName 参数指定日志文件名。事件日志对象沿着管道发送到 ConvertTo-Csv
cmdlet。 ConvertTo-Csv
cmdlet 将事件日志对象转换为一系列 CSV 字符串。 UseCulture 参数使用当前区域性的默认列表分隔符作为分隔符。 NoTypeInformation 参数从 CSV 输出中删除 #TYPE 信息标头,在 PowerShell 6 中不需要。
示例 4:转换为带有两列引号的 CSV
此示例将 DateTime 对象转换为 CSV 字符串。
Get-Date | ConvertTo-Csv -QuoteFields "DateTime","Date"
DisplayHint,"DateTime","Date",Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:27:34 AM","8/22/2019 12:00:00 AM",22,Thursday,234,11,Local,569,27,8,34,637020700545699784,11:27:34.5699784,2019
示例 5:仅在需要时转换为带引号的 CSV
此示例将 DateTime 对象转换为 CSV 字符串。
Get-Date | ConvertTo-Csv -UseQuotes AsNeeded
DisplayHint,DateTime,Date,Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:31:00 AM",8/22/2019 12:00:00 AM,22,Thursday,234,11,Local,713,31,8,0,637020702607132640,11:31:00.7132640,2019
示例 6:将哈希表转换为 CSV
在 PowerShell 7.2 及更高版本中,当您将哈希表转换为 CSV 时,第一个哈希表的键将被序列化并用作输出中的标头。
$person1 = @{
Name = 'John Smith'
Number = 1
}
$person2 = @{
Name = 'Jane Smith'
Number = 2
}
$allPeople = $person1, $person2
$allPeople | ConvertTo-Csv
"Name","Number"
"John Smith","1"
"Jane Smith","2"
示例 7:将哈希表转换为具有附加属性的 CSV
在 PowerShell 7.2 及更高版本中,当您转换具有使用 Add-Member
或 Select-Object
添加的其他属性的哈希表时,其他属性也会作为标头添加到 CSV 中输出。
$allPeople | Add-Member -Name ExtraProp -Value 42
$allPeople | ConvertTo-Csv
"Name","Number","ExtraProp"
"John Smith","1","42"
"Jane Smith","2","42"
每个哈希表都有一个名为 ExtraProp
的属性,由 Add-Member
添加,然后转换为 CSV。您可以看到 ExtraProp
现在是输出中的标头。
如果添加的属性与哈希表中的键具有相同名称,则该键优先,并且仅将该键转换为 CSV。
参数
-Delimiter
指定用于分隔 CSV 字符串中的属性值的分隔符。默认值为逗号 (,
)。输入一个字符,例如冒号 (:
)。要指定分号 (;
),请将其括在单引号中。
查尔
位置:1
默认值:逗号 (,)
必需的:False
接受管道输入:False
接受通配符:False
-IncludeTypeInformation
使用此参数时,输出的第一行包含#TYPE
,后跟对象类型的完全限定名称。例如,#TYPE System.Diagnostics.Process
。
此参数是在 PowerShell 6.0 中引入的。
类型 :SwitchParameter
别名:ITI
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-InputObject
指定转换为 CSV 字符串的对象。输入包含对象的变量或键入获取对象的命令或表达式。您还可以通过管道将对象传输到 ConvertTo-CSV
。
PS对象
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-NoHeader
使用此参数时,cmdlet 不会将包含列名称的标题行写入输出。
此参数是在 PowerShell 7.4 中添加的。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-NoTypeInformation
从输出中删除 #TYPE
信息标头。此参数成为 PowerShell 6.0 中的默认参数,包含此参数是为了向后兼容。
SwitchParameter
别名:NTI
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-QuoteFields
指定应加引号的列的名称。使用此参数时,仅引用指定的列。此参数是在 PowerShell 7.0 中添加的。
类型 :String[]
别名:QF
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-UseCulture
使用当前区域性的列表分隔符作为项目分隔符。要查找区域性的列表分隔符,请使用以下命令:(Get-Culture).TextInfo.ListSeparator
。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-UseQuotes
指定何时在 CSV 文件中使用引号。可能的值为:
- 从不 - 不要引用任何内容
- 始终 - 引用所有内容(默认行为)
- AsNeeded - 仅引用包含分隔符、双引号或换行符的字段
此参数是在 PowerShell 7.0 中添加的。
类型 :Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
别名:UQ
位置:命名
默认值:总是
必需的:False
接受管道输入:False
接受通配符:False
输入
PSObject
您可以通过管道将任何具有扩展类型系统 (ETS) 适配器的对象传递到此 cmdlet。
输出
字符串
此 cmdlet 返回一个或多个表示每个转换对象的字符串。
笔记
在 CSV 格式中,每个对象都由其属性值的字符分隔列表表示。使用对象的 ToString() 方法将属性值转换为字符串。字符串由属性值名称表示。 ConvertTo-CSV
不会导出对象的方法。
CSV 字符串输出如下:
- 如果使用 IncludeTypeInformation,则第一个字符串由 #TYPE 后跟对象类型的完全限定名称组成。例如,#TYPE System.Diagnostics.Process。
- 如果未使用 IncludeTypeInformation,则第一个字符串将包含列标题。标头包含第一个对象的属性名称作为字符分隔的列表。
- 其余字符串包含每个对象的属性值的字符分隔列表。
从 PowerShell 6.0 开始,ConvertTo-CSV
的默认行为是不在 CSV 中包含 #TYPE 信息,并且隐含 NoTypeInformation。 IncludeTypeInformation 可用于包含 #TYPE 信息并模拟 PowerShell 6.0 之前的 ConvertTo-CSV
的默认行为。
当您向 ConvertTo-CSV
提交多个对象时,ConvertTo-CSV
会根据您提交的第一个对象的属性对字符串进行排序。如果其余对象不具有指定属性之一,则该对象的属性值为 Null,由两个连续逗号表示。如果其余对象具有其他属性,则这些属性值将被忽略。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag