使用 powershell 替换 csv 文件列中的值 <0 和 >50
Replace values <0 and >50 in a column of a csv file using powershell
这里是超级新手。
我有一个 csv 文件,它在名为 QOH 的列中显示库存可用性。我正在尝试编写一个 powershell 脚本来将 QOH 列中的所有负值更改为 0,并将 50 或更大的任何值更改为 =50。
例如:如果 QOH = -3 ,替换为 0。如果 QOH = 39,则什么都不做,如果 QOH = 78 替换为 50.
任何代码帮助都会很棒
对于这个例子,我们假设 csv 文件位于 C:\TEMP
列 headers 是:
SKU,QOH,AVAIL,RRP,BC_id,Group,UPC
这是让 <0 变为 = 0 的尝试。(我还没有得到 >50 的任何东西)
这不起作用,因为 QOH 列中的所有内容现在都以 0 显示。
$Path = "C\TEMP\test.csv"
(Import-CSV -Path $Path) | select-object SKU,QOH,AVAIL,RRP,BC_id,Group,UPC |
ForEach-Object {
if ([float]$_.QOH -le 0) {
$_.QOH = '0'
} Else {
$_.QOH = $_.QOH
}
$_
} | Export-CSV -Path $Path -NoTypeInformation
不确定您是否找到了答案,所以我还是把它扔在那里。
我要指出的一件事是您不需要将 0 设置为 0 或将 $.QOH 设置为 $.QOH。基本上,只有小于 0 或大于 50 的才会更改 - 其余的保持不变。
$text = @'
QOH,prop1,prop2
-3,data1,data2
-180,data3,data4
0,data5,data6
28,data7,data8
50,data9,data10
79,data11,data12
'@
$Text | convertfrom-csv | foreach {
if([float]$_.QOH -lt 0){$_.QOH = 0}
elseif([float]$_.QOH -gt 50){$_.QOH = 50}
$_
}
我只是放了一些示例数据来说明清楚。这是输出
QOH prop1 prop2
--- ----- -----
0 data1 data2
0 data3 data4
0 data5 data6
28 data7 data8
50 data9 data10
50 data11 data12
这里是超级新手。
我有一个 csv 文件,它在名为 QOH 的列中显示库存可用性。我正在尝试编写一个 powershell 脚本来将 QOH 列中的所有负值更改为 0,并将 50 或更大的任何值更改为 =50。 例如:如果 QOH = -3 ,替换为 0。如果 QOH = 39,则什么都不做,如果 QOH = 78 替换为 50.
任何代码帮助都会很棒
对于这个例子,我们假设 csv 文件位于 C:\TEMP 列 headers 是: SKU,QOH,AVAIL,RRP,BC_id,Group,UPC
这是让 <0 变为 = 0 的尝试。(我还没有得到 >50 的任何东西)
这不起作用,因为 QOH 列中的所有内容现在都以 0 显示。
$Path = "C\TEMP\test.csv"
(Import-CSV -Path $Path) | select-object SKU,QOH,AVAIL,RRP,BC_id,Group,UPC |
ForEach-Object {
if ([float]$_.QOH -le 0) {
$_.QOH = '0'
} Else {
$_.QOH = $_.QOH
}
$_
} | Export-CSV -Path $Path -NoTypeInformation
不确定您是否找到了答案,所以我还是把它扔在那里。
我要指出的一件事是您不需要将 0 设置为 0 或将 $.QOH 设置为 $.QOH。基本上,只有小于 0 或大于 50 的才会更改 - 其余的保持不变。
$text = @'
QOH,prop1,prop2
-3,data1,data2
-180,data3,data4
0,data5,data6
28,data7,data8
50,data9,data10
79,data11,data12
'@
$Text | convertfrom-csv | foreach {
if([float]$_.QOH -lt 0){$_.QOH = 0}
elseif([float]$_.QOH -gt 50){$_.QOH = 50}
$_
}
我只是放了一些示例数据来说明清楚。这是输出
QOH prop1 prop2
--- ----- -----
0 data1 data2
0 data3 data4
0 data5 data6
28 data7 data8
50 data9 data10
50 data11 data12