Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何使用PowerShell更新csv文件中的内容或数据值行?_Arrays_Powershell_Export To Csv - Fatal编程技术网

Arrays 如何使用PowerShell更新csv文件中的内容或数据值行?

Arrays 如何使用PowerShell更新csv文件中的内容或数据值行?,arrays,powershell,export-to-csv,Arrays,Powershell,Export To Csv,我需要更新一个.csv文件而不添加任何额外的行或新行,所以我只需要更新一行数据。输入数据是行的形式,我使用foreach循环 请帮助指导。我将逐步使用ForEach并浏览每一行,更改需要更改的一行,然后创建一个新的输出文件 想象一下这样的.csv 动物、名字、年龄 猫,芬尼根,3岁 猫,皮聘,5 狗,菲多,2 蜥蜴,德拉科,1 假设我想把动物类型从蜥蜴改成猫 $csv = import-csv C:\Path\To\Your.csv $outputFile = New-Object Syste

我需要更新一个.csv文件而不添加任何额外的行或新行,所以我只需要更新一行数据。输入数据是行的形式,我使用foreach循环

请帮助指导。

我将逐步使用ForEach并浏览每一行,更改需要更改的一行,然后创建一个新的输出文件

想象一下这样的.csv

动物、名字、年龄 猫,芬尼根,3岁 猫,皮聘,5 狗,菲多,2 蜥蜴,德拉科,1

假设我想把动物类型从蜥蜴改成猫

$csv = import-csv C:\Path\To\Your.csv
$outputFile = New-Object System.Collections.ArrayList
ForEach($row in $csv){
    If ("Lizard" -eq $row.Animal){
        Write-Output "Changing Animal type for $($row.Name) from $($row.Animal) to 'Cat'"
        $row.Animal = 'Cat'
    }
    $outputFile.Add($row) | Out-Null
}

$outputFile | Export-Csv c:\Path\To\Updated.csv -NoTypeInformation
这将为任何发生更改的行提供此输出:

Changing Animal type for Draco from Lizard to 'Cat'

您只需定制它以满足您的需要

谢谢分享这些信息。这是非常有用的,我能够根据需要进行自定义,但当导出文件时,它会生成默认的头名称H1。尝试导入Csv,但没有得到更新标头名称的预期结果。有什么建议吗?如果你的输入文件根本没有标题,你可以这样指定它们。导入csv c:\temp\t.csv-标题动物、狗、猫。如果这对您有帮助,请记住标记为答案。