powershell - 使用PowerShell删除CSV中的前两列

标签 powershell

我需要删除CSV中的前两列。我不知道标题名称,它们不是静态的。我想出了如何删除前两行,而不是前两列。我正在使用的示例代码如下

$csv     = Import-Csv 'input.csv'
$headers = $csv[0].PSObject.Properties | select -Expand Name
$step    = 4

for ($i = 0; $i -lt $headers.Count; $i += $step) {
  $csv | select $headers[$i..($i+$step-1)] |
    Export-Csv "output_$($i/$step).csv" -NoType
}

最佳答案

这似乎可行:

$csv     = Import-Csv 'input.csv'
$include = $csv[0].psobject.properties | select -ExpandProperty Name -Skip 2
$csv | select $include -skip 2 | export-csv output.csv -NoTypeInformation

应当注意删除前两列,然后跳过前两行。

关于powershell - 使用PowerShell删除CSV中的前两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27323493/

相关文章:

Powershell "private"范围似乎根本没有用

exception - powershell 2 new-object "Cannot find type..."从外部库实例化 .net 类实现接口(interface)时出现异常

c# - 在 .NET Core 3.0 中从 C# 执行提升的 powershell 脚本

excel - PowerShell | OLEDB | Excel |无法从第三方应用程序创建的 XLSX 读取数据

powershell - 按 Import-CSV 中的最大数值对对象进行排序

sql-server - 如何在SSIS项目中搜索对特定表的引用?

PowerShell 重命名文件名并保留扩展名

powershell - 如何格式化输出以便它们在 .log 文件中全部对齐?

PowerShell:从格式化为列表的输出中解析特定项目

powershell - 自动打开输出文件