Json 将csv转换为Powershell中的表

Json 将csv转换为Powershell中的表,json,powershell,csv,Json,Powershell,Csv,我有一个以下格式的csv,需要转换为json或一个表,以便我可以轻松地解析它,并在以后的代码中将这些值用作参数 Directory : \\foo\foofoo\nightly.188\share\name Name : name.pst Length : 271360 CreationTime : 6/4/2009 2:42:21 PM LastWriteTime : 6/9/2011 8:58:50 AM Directory : \\foo

我有一个以下格式的csv,需要转换为json或一个表,以便我可以轻松地解析它,并在以后的代码中将这些值用作参数

Directory     : \\foo\foofoo\nightly.188\share\name
Name          : name.pst
Length        : 271360
CreationTime  : 6/4/2009 2:42:21 PM
LastWriteTime : 6/9/2011 8:58:50 AM

Directory     : \\foo\foofoo\nightly.188\share\name
Name          : name2.pst
Length        : 71123968
CreationTime  : 10/5/2010 2:41:56 PM
LastWriteTime : 8/1/2011 4:08:32 PM
我尝试过使用格式列表和格式表,但没有帮助

如有任何意见,将不胜感激

我希望输出为表格结构,如下所示:

目录名长度CreationTime LastWriteTime \foo\fooo\nightly.188\share\name.pst 271360 6/4/2009 2:42:21 PM 8/1/2011 4:08:32 PM
\foo\fooo\nightly.188\share\name name2.pst 71123968 10/5/2010 2:41:56 PM 8/1/2011 4:08:32 PM

要将CSV数据作为表格查看到控制台,请执行以下操作

$sorceFile = "D:\temp\source.csv"
Import-Csv $sorceFile | Format-Table -AutoSize
如果希望以交互方式查看数据,也可以使用“Out GridView”命令

$sorceFile = "D:\temp\source.csv"
Import-Csv $sorceFile | Out-GridView
下面将CSV数据转换为Json数据

$sorceFile = "D:\temp\source.csv"
$JsonData = Import-Csv $sorceFile | ConvertTo-Json
$JsonData
然而,这只是一个字符串。如果要进一步处理CSV文件中的数据,请执行以下操作以保存到变量

$sorceFile = "D:\temp\source.csv"
$CsvData= Import-Csv $sorceFile

# view formatted table in console
$CsvData | format-table

#example data query 
$CsvData | Where-Object{$_.Name -eq 'name.pst'}

#example loop
foreach ($row in $CsvData) {
    Write-Output "Name: $($row.name) CreationTime: $(get-date $row.CreationTime -Format 'dddd MM/dd/yyyy HH:mm K')"
}

格式列表和格式表将数据转换为适合在控制台上显示或复制到文本文件的格式。这对于解析很有用,但对于将数据作为参数传递给其他对象则不太有用。如果您只是执行这样的导入:

Import-Csv myfile.csv
Powershell将为您创建一个隐式格式表或格式列表,然后再将其放在控制台上

如果要将内容用作参数,请注意csv文件的内容将转换为PSCustomObject数组。每个PSCustomObject都具有与CSV文件头中提供的字段名同名的属性

Import-Csv thefile.csv | % {
    "The file $($_.name) contains:"
    Get-Content $_.name
}
“我已经试过了”--请编辑问题以添加您尝试过的内容的代码。否则,人们只能猜测错误(有些人甚至可能认为你实际上没有尝试任何东西)。下面的格式没有显示任何类似CSV格式的内容。充其量,这是导入Csv路径“theFile.Csv | Format List”的输出。