ConvertFrom-Csv 
	将字符分隔值(CSV)格式的对象属性转换为原始对象的 CSV 版本。
语法
Delimiter (默认值)
ConvertFrom-Csv
    [-InputObject] <psobject[]>
    [[-Delimiter] <char>]
    [-Header <string[]>]
    [<CommonParameters>]
	
		UseCulture
	 
	ConvertFrom-Csv
    [-InputObject] <psobject[]>
    -UseCulture
    [-Header <string[]>]
    [<CommonParameters>]
	说明
              ConvertFrom-Csv cmdlet 将字符分隔值(CSV)数据转换为 PSObject 每行 CSV 数据的类型对象。 新对象按照从 CSV 数据读取的顺序写入管道。 CSV 列标题行中的值将成为添加到每个新 PSObject的属性的名称。
              ConvertFrom-Csv 创建的对象 CSV 文件中每行的 PSObject 类型对象。 CSV 对象的属性值是原始对象的属性值的字符串版本。 对象的 CSV 版本没有任何方法。
还可以使用 Export-Csv 和 Import-Csv cmdlet 将对象转换为文件中的 CSV 字符串。 这些 cmdlet 与 ConvertTo-Csv 和 ConvertFrom-Csv cmdlet 相同,只是它们在文件中保存 CSV 字符串。
PSObject 类型维护列标题顺序中的属性顺序。 这意味着,将对象转换回 CSV 格式时,将获得相同的列顺序。
示例
示例 1:将本地计算机上的进程转换为 CSV 格式
此示例演示如何将本地计算机上的进程转换为 CSV 格式,然后将其还原到对象窗体。
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
              Get-Process cmdlet 将进程向下发送到 ConvertTo-Csv。 
              ConvertTo-Csv cmdlet 将进程对象转换为一系列 CSV 字符串。 
              ConvertFrom-Csv cmdlet 将 CSV 字符串转换为原始进程对象的 CSV 版本。
CSV 字符串保存在 $P 变量中。
示例 2:将数据对象转换为 CSV 格式,然后转换为 CSV 对象格式
此示例演示如何将数据对象转换为 CSV 格式,以及如何转换为 CSV 对象格式。
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
第一个命令使用 Get-Date 将管道的当前日期和时间向下发送到 ConvertTo-Csv。 
              ConvertTo-Csv cmdlet 将日期对象转换为一系列 CSV 字符串。 
              分隔符 参数用于指定分号分隔符。 字符串保存在 $Date 变量中。
示例 3:使用标头参数更改属性的名称
此示例演示如何使用  的 ConvertFrom-Csv 参数更改生成的导入对象中的属性名称。
$J = Start-Job -ScriptBlock { Get-Process } | ConvertTo-Csv  -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command',
          'StateInfo', 'Finished', 'InstanceId', 'Id', 'Name', 'ChildJobs',
          'BeginTime', 'EndTime', 'JobType', 'Output', 'Error', 'Progress',
          'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from $J
$J = $J[1..($J.Count - 1)]
$J | ConvertFrom-Csv -Header $Header
State         : Running
MoreData      : True
StatusMessage :
Location      : localhost
Command       : Get-Process
StateInfo     : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : a259eb63-6824-4b97-a033-305108ae1c2e
Id            : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime     : 12/20/2018 18:59:57
EndTime       :
JobType       : BackgroundJob
Output        : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress      : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.VerboseRecord]
Debug         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information   : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]
              Start-Job cmdlet 启动运行 Get-Process 的后台作业。 作业对象将向下发送到管道以 ConvertTo-Csv 并转换为 CSV 字符串。 
              NoTypeInformation 参数从 CSV 输出中删除类型信息标头,在 PowerShell v6 及更高版本中是可选的。 
              $Header 变量包含替换以下默认值的自定义标头:HasMoreData、JobStateInfo、PSBeginTime、PSEndTime和 PSJobTypeName。 
              $J 变量包含 CSV 字符串,用于删除默认标头。 
              ConvertFrom-Csv cmdlet 将 CSV 字符串转换为 PSCustomObject,并使用 Header 参数应用 $Header 变量。
示例 4:转换服务对象的 CSV 字符串
此示例演示如何将 ConvertFrom-Csv cmdlet 与 UseCulture 参数一起使用。
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
              Get-Culture cmdlet 使用嵌套属性 TextInfo 和 ListSeparator 来获取当前区域性的默认列表分隔符。 
              Get-Service cmdlet 将服务对象发送到管道 ConvertTo-Csv。 
              ConvertTo-Csv 将服务对象转换为一系列 CSV 字符串。 CSV 字符串存储在 $Services 变量中。 
              ConvertFrom-Csv cmdlet 使用 InputObject 参数,并从 $Services 变量转换 CSV 字符串。 
              UseCulture 参数使用当前文化的默认列表分隔符。
使用 UseCulture 参数时,请确保当前区域性的默认列表分隔符与 CSV 字符串中使用的分隔符匹配。 否则,ConvertFrom-Csv 无法从 CSV 字符串生成对象。
参数
-Delimiter
指定分隔 CSV 字符串中的属性值的分隔符。 默认值为逗号(,)。 输入字符,如冒号(:)。 若要指定分号(;),请将它括在单引号中。
如果指定文件中的实际字符串分隔符以外的字符,ConvertFrom-Csv 无法从 CSV 字符串创建对象并返回 CSV 字符串。
参数属性
| 类型: | Char | 
| 默认值: | comma (,) | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
Delimiter
| Position: | 1 | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Header
指定导入字符串的备用列标题行。 列标题确定由 ConvertFrom-Csv创建的对象的属性名称。
以字符分隔的列表的形式输入列标题。 不要将标头字符串括在引号中。 将每个列标题括在单引号中。
如果输入的列标题少于数据列,则剩余的数据列将被丢弃。 如果输入的列标题多于数据列,则使用空数据列创建其他列标题。
使用 Header 参数时,请省略 CSV 字符串中的列标头字符串。 否则,此 cmdlet 将从标题行中的项创建额外的对象。
参数属性
| 类型: | String[]  | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-InputObject 
		指定要转换为对象的 CSV 字符串。 输入包含 CSV 字符串的变量,或键入获取 CSV 字符串的命令或表达式。 还可以通过管道将 CSV 字符串传递给 ConvertFrom-Csv。
参数属性
| 类型: | PSObject[]  | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | 0 | 
| 必需: | True | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | True | 
| 来自剩余参数的值: | False | 
-UseCulture 
		将当前区域性的列表分隔符用作项分隔符。 若要查找特定文化的列表分隔符,请使用以下命令:(Get-Culture).TextInfo.ListSeparator。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
					UseCulture 
					
				 
				| Position: | Named | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
String
可以通过管道将 CSV 字符串传递给此 cmdlet。
输出
PSObject
此 cmdlet 返回 CSV 字符串中属性描述的对象。
备注
在 CSV 格式中,每个对象都由对象的属性值的字符分隔列表表示。 属性值使用对象的 ToString() 方法转换为字符串。 无法导出对象的方法。