我正在尝试使用Powershell从大量CSV中删除列。我正在尝试使用
Get Child-Item *.csv | Foreach-Object {Import-Csv $_ | select data, close | Export-Csv $_ - NoTypeInformation}
然而,我最终得到了一堆空的CSV。我猜这与导出与我正在导入的CSV同名的CSV有关,因为如果我使用不同的名称它可以正常工作(即Import-Csv X.csv ... Export-Csv XXXXXX.csv) 。
但是,当我涉及'$ _'并且手动操作太多时,我无法弄清楚如何编辑输出CSV名称。
我给的命令有什么问题?另外,为了将来参考,我如何将输出作为不同的文件名?
谢谢。
答案 0 :(得分:0)
好的,一个衬垫很棒,但是如果你开始遇到问题,可能是时候将其分解了。这会将其导入变量,然后选择所需的两列,并将其导出到文件名末尾加-trimmed
的文件。
Gci *.csv ¦ select -expand Fullname ¦ %{
$current = import-csv $_
$newname = $_ -replace ".Csv$", "-trimmed.csv"
$current ¦ select data, close ¦ export-csv $newname -notype
}
这应该有用,虽然我无法测试,因为我在下班回家的路上乘坐公共汽车时从手机上发帖。