使用原始文件的名称作为输出文件

时间:2019-02-28 08:42:45

标签: powershell

我已经能够使该脚本正常工作,但是我不知道的唯一方法是采用原始文件名并将其应用于添加了_new的输出文件名。你能把我推向写方向吗?

Import-Csv '\\DESKTOP-QC1GB24\Allpay DD\Processing\*.csv' -Header (1..5|%{"Column$_"}) |
    Select-Object Column2,Column3,Column5 -SkipLast 1 |
    ConvertTo-Csv -NoTypeInformation |
    Select-Object -Skip 1 | 
    Set-Content -Path "\\DESKTOP-QC1GB24\Allpay DD\Completed\New.CSV"

1 个答案:

答案 0 :(得分:1)

在导入并循环浏览.csv文件之前,您可以获取它们的列表:

Get-ChildItem -Filter '*.csv' -Path '\\DESKTOP-QC1GB24\Allpay DD\Processing\'|
  % {Import-Csv $_.Fullname -Header (1..5|%{"Column$_"}) |
      Select-Object Column2,Column3,Column5 -SkipLast 1 |
      ConvertTo-Csv -NoTypeInformation |
      Select-Object -Skip 1 | 
      Set-Content -Path "\\DESKTOP-QC1GB24\Allpay DD\Completed\$($_.BaseName)_new.CSV"}

通过这种方式$_.Fullname指向文件的每个完整路径,而$_.BaseName为您提供每个文件的名称,不带扩展名(在本例中为.csv)。这样,您可以在"_new"期间添加Set-Content字符串。