我对脚本编程有点新鲜。我有一个CSV文件,我正在导入和修改数据,因此它以更好的格式呈现 我的问题是我想(我猜)在给定列的所有行上进行foreach循环,如果数据与某个条件不匹配:
我基本上在做import-csv $file
。我稍后会把它导出。
这是一个例子:我基本上想要将Task2移动到Task1列中,如果除了“ - ”之外还有任何数据存在,那么我可以忽略任务2列。
Import-csv
给了我这个:
ID, TASK1, TASK2
123, A, --
456, B, --
789, C, D,
But I want it to look like this:
ID, TASK1, TASK2
123, A , --
456, B, --
789, C, D,
789, D, D,
答案 0 :(得分:0)
对于相对较小的csv文件,这可能是一种方式($ CSV + =每次重新创建var):
## Q:\Test\2017\09\03\SO_46018965.ps1
$CSV = import-csv 'test.csv'
foreach ($Row in $CSV){
if ($Row.TASK1 -eq 'C'){
$NewRow=[PSCustomObject]@{
ID = $Row.ID
TASK1 = $Row.TASK2
TASK2 = $Row.TASK2}
$CSV+=$NewRow
}
}
$CSV
示例输出:
ID TASK1 TASK2
-- ----- -----
123 A --
456 B --
789 C D
789 D D
答案 1 :(得分:-1)
其他方法:
$data=import-csv "C:\temp\test.txt"
$data + ($data | where TASK2 -ne "--" | %{$_.TASK1=$_.TASK2;$_})