尝试向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
无法前往那里并在脚本中提前设置变量并不起作用(无论如何都尝试过)。
答案 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']
}