【问题标题】:Replace csv file header row with powershell用 powershell 替换 csv 文件标题行
【发布时间】:2014-07-17 01:49:53
【问题描述】:

是否可以将 csv 文件导入 powershell,用一组定义的数据替换整个标题行,然后用新名称保存到 csv 文件。

我需要能够自动执行此任务,以便其他软件可以使用它。

任何想法将不胜感激。

【问题讨论】:

  • 必须是 PowerShell 吗?在 PowerShell 中当然可以,但使用 Excel 宏或 Perl 或 Python 等脚本语言可能更容易。
  • 不,任何可以完全自动化的东西都可以工作。只需要由 win 2012 服务器上的计划任务调用。

标签: powershell csv replace header


【解决方案1】:

示例文件内容

1,b,4
8,j,7
8,k,9

制作自己的标题:

Import-Csv D:\Temp\txt.txt -Header "name","letter","value"

name                                                     letter                                                   value                                                  
----                                                     ------                                                   -----                                                  
1                                                        b                                                        4                                                      
8                                                        j                                                        7                                                      
8                                                        k                                                        9     

跳过行:

Import-Csv D:\Temp\txt.txt -Header "name","letter","value" | select -skip 1

name                                                     letter                                                   value                                                  
----                                                     ------                                                   -----                                                  
8                                                        j                                                        7                                                      
8                                                        k                                                        9  

通过导出将其全部绑定:

$tempCSV = Import-Csv D:\Temp\txt.txt -Header "name","letter","value" | select -skip 1
$tempCSV | Export-CSV D:\Temp\txt.txt -NoTypeInformation

【讨论】:

  • 这条线对我不起作用 $tempCSV |导出-CSV 导出-Csv C:\CSVTest\txt.txt -NoTypeInformation
  • 我收到此错误 Export-Csv:无法绑定参数“分隔符”。无法将值“C:\CSVTest\txt.txt”转换为类型“System.Char”。错误:“字符串必须恰好是一个字符长。”在 C:\CSVTest\Example.ps1:3 char:34 + $tempCSV | Export-CSV Export-Csv C:\CSVTest\txt.txt -NoTypeInformation + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Export-Csv], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.ExportCsvCommand
【解决方案2】:

处理此问题的简单方法是: $temp = 获取内容 ~\CSVFileName>.csv; $temp[0] = $temp[0].replace($temp[0], "NewCommaSeparatedHeader>"); Set-Content -Path ~\ModHeaderCSVFile>.csv -Value $temp;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2022-01-22
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多