我被要求使用powershell创建一个脚本,在csv单元格中的每个单词后放置逗号(,)。但是由于一些安全原因,实际的csv还没有与我共享。
我已经创建了一个测试csv并尝试将逗号每个单词后都有(,)(屏幕截图1)。我可以创建脚本,并且它100%正常工作(屏幕截图2)。然而,实际文件大小约为250 MB。我假设如果该文件有100s列,我是否必须像在foreach循环中提到的那样在脚本中提到每个列名?是否有简单的方法可以在不提到每个列名的情况下完成此任务?如有任何帮助,将不胜感激。下面是我的脚本,运行良好:
$csv = Import-Csv -Path C:\temp\test.csv
$outcsv = Read-Host "Enter the name of the output csv"
$outfile = "$env:USERPROFILE\Downloads" + "" + $outcsv + ".csv"
$data = @()
foreach ($item in $csv) {
$col1 = $item.Name + ","
$col2 = $item.Location + ","
$col3 = $item.Company + ","
$col4 = $item.Profile + ","
$col5 = $item.Shift + ","
$Properties = [ordered]@{
'Name' = $col1
'Location' = $col2
'Company' = $col3
'Profile' = $col4
'Shift' = $col5
}
$data += New-Object -TypeName PSObject -Property $Properties
}
$data | Export-Csv -Path $outfile -NoTypeInformation
截图一:
带逗号(,)的屏幕截图2:
1条答案
按热度按时间col17t5w1#
这是一种更简单的方法,可以通过访问对象的
PSObject.Properties
动态地处理逻辑。