Powershell для l oop над CSV и поместите их в новую папку, используя свое первоначальное имя - PullRequest
0 голосов
/ 30 января 2020

Я выписал приведенный ниже 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 и оригинальному имени файла?

1 Ответ

1 голос
/ 30 января 2020

В вашем foreach l oop вы можете использовать следующее:

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

Get-ChildItem возвращает FileInfo объектов при запросе файлов. $files содержит эти объекты в вашем коде. Каждый объект содержит свойства FullName, BaseName и Name. FullName содержит имя файла, путь к файлу и расширение. BaseName содержит имя файла без пути и расширения. Name содержит имя файла с расширением, но исключает путь.

...