1つのフォルダ内に、大量のPowerPoint資料があります。 – … – Yahoo!知恵袋 にVB Scriptのコードがあったので、これをMicrosoftの Copilotくんに変換をお願いした。
しかし、そのままでは動かない。
$baseName = [System.IO.Path]::GetBaseName($file.Name)
と回答してきたが、ここは
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($file.Name)
にしないと動かない。
# PowerShellスクリプト $folderPath = Get-Location $files = Get-ChildItem -Path $folderPath $powerPoint = New-Object -ComObject PowerPoint.Application foreach ($file in $files) { if ($file.Extension -eq ".pptx") { $baseName = [System.IO.Path]::GetFileNameWithoutExtension($file.Name) $presentation = $powerPoint.Presentations.Open($file.FullName, 0) $pdfPath = Join-Path $folderPath "$baseName.pdf" $presentation.SaveAs($pdfPath, 32) $presentation.Close() } } $powerPoint.Quit() [void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($powerPoint) Write-Host "Finished!"