如何运行一个单独的PowerShell脚本,该脚本会依次执行以下操作?

  • 使用此脚本,将目录中所有csv文件的文件名添加为每个文件末尾的一列:
    Get-ChildItem *.csv | ForEach-Object {
    $CSV = Import-CSV -Path $_.FullName -Delimiter ","
    $FileName = $_.Name
    
    $CSV | Select-Object *,@{N='Filename';E={$FileName}} | Export-CSV $_.FullName -NTI -Delimiter ","}
    
  • 将目录中的所有csv文件合并为一个csv文件
  • 仅保留第一个csv中的 header (第一行),并从文件中排除所有其他第一行。

    与kemiller2002做的here类似,除了一个带有csv输入和csv输出的脚本。
  • 最佳答案

    Bill的答案允许您组合CSV,但不能将文件名添加到每一行的末尾。我认为最好的方法是使用PipelineVariable公用参数在ForEach循环中添加该参数。

    Get-ChildItem \inputCSVFiles\*.csv -PipelineVariable File |
      ForEach-Object { Import-Csv $_ | Select *,@{l='FileName';e={$File.Name}}} |
      Export-Csv \outputCSVFiles\newOutputFile.csv -NoTypeInformation
    

    那应该完成您想要的。

    07-24 09:39
    查看更多