Powershell csv文件和条件语句

时间:2017-02-26 09:35:41

标签: powershell csv

我对脚本相对较新,并且一直在尝试解决PowerShell中的特定脚本问题, 我很难将输出导出到csv文件,该脚本在向控制台显示时运行正常但我得到字符串长度或内容声明到脚本。我遗漏了一些改变属性到内容的东西,但似乎无法锻炼如何做到这一点 非常感谢期待

import-csv "C:\scripts\test1\data-Raw.csv"|
foreach{ 
if ($_.Hide -eq 'True') { @{OutFinal=$_.OT_Pre,$_.extension}}
if ($_.Hide -eq 'False') { @{OutFinal=$_.extension,$_.extension}}
} | Export-Csv -NoTypeInformation "C:\scripts\test1\data-2.csv"

1 个答案:

答案 0 :(得分:2)

尝试像这样转换pscustomobject

import-csv "C:\scripts\test1\data-Raw.csv"|
foreach{ 
if ($_.Hide -eq 'True') { [pscustomobject]@{OutFinal=$_.OT_Pre;Extension=$_.extension}}
else { [pscustomobject]@{OutFinal=$_.extension;Extension=$_.extension}}
} | Export-Csv -NoTypeInformation "C:\scripts\test1\data-2.csv"

或者只是喜欢它:

import-csv "C:\scripts\test1\data-Raw.csv"|
foreach{
    [pscustomobject]@{
    OutFinal=if ($_.Hide -eq 'True'){$_.OT_Pre} else {$_.extension}
    Extension=$_.extension
    } 
} | Export-Csv -NoTypeInformation "C:\scripts\test1\data-2.csv"

如果你想保留所有属性并添加属性,你可以这样做:

import-csv "C:\scripts\test1\data-Raw.csv"|
    select *, @{Name="OutFinal"; Expression={if ($_.Hide -eq 'True'){$_.OT_Pre} else {$_.extension}}} |
        Export-Csv -NoTypeInformation "C:\scripts\test1\data-2.csv"