Powershell循环遍历csv并使用其原始名称将它们放入新文件夹中

Powershell to loop over csv's and place them into a new folder using its original name

我写出了下面的 powershell:

$Headers = @(
 "Purchase Order"
  "SKU"
  "Markdown"
  "Landed Cost"
  "Original Price"
  "Current Sale Price"
  "Free Stock"
  "OPO"
  "ID Style"
  "Supplier Style No")


$Location = "\dc1\shared\BI\HisRms"
$Destination = "C:\Users\jonathon.kindred\Desktop\RMM\"
$files = Get-ChildItem $location -Recurse -Filter "*.csv"


Foreach ($file in $files) { Select $Headers | Export-Csv Join-Path "C:\Users\jonathon.kindred\Desktop\RMM\" $_.FullName -Force -NoTypeInformation}

我遇到的问题是所有文件都失败了,因为我没有硬编码文件路径以在末尾包含 .csv。它是怎么做到的,所以我加入路径 $Destination 和原始文件名?

在您的 foreach 循环中,您可以使用以下内容:

Export-Csv -Path (Join-Path $Destination $file.Name) -NoType

Get-ChildItem returns FileInfo 查询文件时的对象。 $files 包含您代码中的那些对象。每个对象都包含属性 FullNameBaseNameNameFullName 包含文件名、文件路径和扩展名。 BaseName 包含没有路径和扩展名的文件名。 Name 包含带扩展名的文件名,但不包括路径。