将Y / N标志添加到CSV

时间:2017-03-08 22:48:18

标签: powershell csv

尝试向CSV添加标记功能。基本上,如果我输入:

$_ | Add-Member -MemberType NoteProperty -Name Flag

我收到消息:

The Value parameter is required for a member of type "NoteProperty". Specify the
Value parameter when adding members of this type.
Value:

我唯一想做的就是改变信息。我想说的是当前订单项的字段,名为SO," Flag $ _。SO? Y / N&#34 ;.这意味着,如果此订单项的SO字段为Ticket007,而不是默认消息,我希望它显示消息:

Flag Ticket007?  y/n

我无法弄清楚如何对这个问题进行合理的评估,以便进行合理的搜索。 Read-Host无法前往那里并在脚本中提前设置变量并不起作用(无论如何都尝试过)。

2 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,您想要的是循环CSV文件中的每个项目,并且系统会提示您是否应根据SO的值标记该特定项目该项目的财产。为了做到这一点,你会想要使用某种循环,例如:

$MyCSV = Import-CSV C:\Path\To\File.csv | ForEach {
    Add-Member -InputObject $_ -NotePropertyName 'Flag' -NotePropertyValue ((Read-Host "Flag $($_.so)? (y/n)") -match 'y') -Pass
}

这将加载CSV,并为每个项目提示您是否要标记该项目。它根据您的输入添加Flag属性True / False,并将新项目传递给管道。

答案 1 :(得分:0)

正如消息告诉您的那样,您需要向Add-member添加值参数。像这样:

Import-Csv your_file.csv | % {
    $_ | Add-Member -MemberType NoteProperty -Name Flag -Value @('', "Flag $($_.SO)? y/n")[$_.SO -ne 'default']
}