【发布时间】:2020-10-06 10:20:17
【问题描述】:
我有一个 csv 文件,其中包含我想提取并作为列添加到单独 csv 文件的行。
这是第一个 csv 文件内容的示例。
我想将第三个逗号和分号之间的所有内容分别作为列添加到此 csv 文件中。
我想要的输出是这个。因为第一个 csv 文件中可能有多个服务器,我想为每个服务器导出一个 csv,但我可以弄清楚这一点。
我一直在玩弄以下,但我无法弄清楚。
Import-CSV $CsvTargetPath | ForEach-Object {
$newData = $_
Import-CSV $CsvSourcePath | ForEach-Object {
$_.AdditionalDisks.split(";") | ForEach-Object {
$newRecordProperties = [ordered]@{
$DriveLetter = $_.split(",")[3]
$Label = $_.split(",")[4]
$Filesystem = $_.split(",")[5]
}
$newRecord = new-object psobject -Property $newRecordProperties
Write-Output $newRecord
}
$CsvTargetPath | Add-Member -MemberType NoteProperty -Name DriveLetter -Value $DriveLetter -PassThru
$CsvTargetPath | Add-Member -MemberType NoteProperty -Name Label -Value $Label -PassThru
$CsvTargetPath | Add-Member -MemberType NoteProperty -Name Filesystem -Value $Filesystem -PassThru
}
} | Export-CSV $CsvTargetPath -NoTypeInformation
这是第一个 csv 的纯文本内容。
VmName AdditionalDisks
Server01 90,0,thick,b,sql backup,refs;110,1,thick,d,sql data,refs;60,2,thick,f,sql transaction log,refs;50,3,thin,l,sql audit,refs;30,0,thick,t,sql tempdb data,refs
Server02 90,0,thick,b,sql backup,refs;110,1,thick,d,sql data,refs;60,2,thick,f,sql transaction log,refs;50,3,thin,l,sql audit,refs;30,0,thick,t,sql tempdb data,refs
【问题讨论】:
-
请您编辑您的问题并向我们展示(至少)第一个 CSV 文件的前 3 或 4 行作为纯文本(从记事本复制),所以我们不要不必输入您已有的内容?
标签: powershell csv