我目前有一个 powershell 脚本,可以很好地将 Excel 电子表格转换为 PDF 文件,但我的问题是新文件出现在父文件夹中,而不是它们来自的特定子文件夹中。我当前的脚本如下所示:
$path = "c:\users\me\Documents\Test\sub-test"
$xlFixedFormat = "Microsoft.Office.Interop.Excel.xlFixedFormatType" -as [type]
$filter = Get-ChildItem -Path $path -include *.xls, *.xlsx -recurse
$objExcel = New-Object -ComObject excel.application
$objExcel.visible = $false
foreach($wb in $filter)
{
$filepath = join-path -Path $path -ChildPath ($wb.basename + ".pdf")
$workbook = $objExcel.workbooks.open($wb.fullname, 3)
$workbook.Saved = $true
"saving $filepath"
$workbook.ExportAsFixedFormat($xlFixedFormat::xlTypePDF, $filepath)
$objExcel.Workbooks.close()
}
$objExcel.Quit()
现在,如果我将 $filepath 中的 Childpath 参数更改为 ($wb.fullname + ".pdf"),则运行时会列出完整的正确路径,但会发生错误,因为 .xls 仍包含在新文件名中。我的最终目标是用 pdf 副本实际替换所有的 excel 文件,但我只是想先弄清楚这部分,然后我可以简单地编写一个脚本来删除所有的 excel 文件。任何输入将不胜感激。谢谢, CJ