2

私は現在、ExcelスプレッドシートをPDFファイルに変換するのにうまく機能するpowershellスクリプトを持っていますが、私の問題は、新しいファイルが元の特定のサブフォルダーではなく、親フォルダーに表示されることです。私の現在のスクリプトは次のようになります。

$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 がまだ含まれているためエラーが発生します。私の最終的な目標は、実際にすべてのExcelファイルをpdfコピーに置き換えることですが、最初にこの部分を理解しようとしていただけで、後ですべてのExcelファイルを削除するスクリプトを書くことができます. 任意の入力をいただければ幸いです。ありがとう、CJ

4

1 に答える 1

1

プロパティを使用して、FullName次のように拡張子だけを置き換えることができます。

($wb.FullName -replace '\.xlsx?$', '.pdf')

これは、拡張子.xlsまたは.xlsxXLXS問題のタイトルはタイプミスだと思いますか?)のファイルで機能するはずです。

于 2013-07-04T01:19:43.747 に答える