【发布时间】:2014-01-01 18:59:02
【问题描述】:
我正在尝试导入 csv 文件并以竖线分隔格式输出列。
Import-csv file.dat | foreach {($_.'Column1')+ "|" +($_.'Column2')+ "|" +($_.'Column3')}
当我显式传递列值时,这很有效
($_.'ColumnX' + "|" $_.'ColumnY') etc.
我想将动态生成的变量字符串传递给 foreach 组件。
我能够生成一个看起来完全一样的“字符串”
"($_.'Column1')+ "|" +($_.'Column2')+ "|" +($_.'Column3')"
但是,powershell 将生成的字符串视为单列并仅输出第一列。
例如。
$columns = ($_.'Column1')+ "|" +($_.'Column2')+ "|" +($_.'Column3')
Import-csv file.dat | foreach {$columns}
关于如何获取在 foreach 部分下传递的列字符串以便我获得正确输出的任何建议?
【问题讨论】:
-
您只是想将逗号转换为管道吗?为什么不使用
-replace?
标签: variables powershell csv dynamic foreach