我已经写了下面的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返回FileInfo
对象。 $files
在代码中包含这些对象。每个对象都包含属性FullName
,BaseName
和Name
。 FullName
包含文件名,文件路径和扩展名。 BaseName
包含文件名,不包含路径和扩展名。 Name
包含带有扩展名的文件名,但不包括路径。