December
21st,
2022
在整理過去的文件時,發現有大量的 Word 文件是使用舊的 .doc
格式,為了能夠在新的系統上使用,需要將這些文件轉換成新的 .docx
格式,這篇文章將介紹如何使用 PowerShell 來批次轉換。
在執行此 PowerShell 的時候,除了電腦上要安裝 Microsoft Word 之外,還要準備一個關鍵的 Microsoft.Office.Interop.Word.dll
,我們我藉由此 DLL 來操作 Word 來進行轉換文件的操作。
如果電腦有安裝 Visual Studio 了話,您應該在目錄下 %ProgramFiles(x86)%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\
找到所需要的 Office 主要 Interop 組件(PIA)。
如果電腦沒有安裝 Visual Studio 的話,您可以從 NuGet 網站上下載所需要的 Microsoft.Office.Interop.Word,在使用解壓縮工具,將這個 NuGet 套件中的 Microsoft.Office.Interop.Word.dll
複製到您的專案資料夾中。
最後則是使用 PowerShell 來執行轉換的動作。
$path = "C:\Users\poychang\[YOUR_FILE_FOLDER]"
$word_app = New-Object -ComObject Word.Application
$Format = [Microsoft.Office.Interop.Word.WdSaveFormat]::wdFormatXMLDocument
Get-ChildItem -Path $path -Filter *.doc | ForEach-Object {
$document = $word_app.Documents.Open($_.FullName)
$docx_filename = "$($_.DirectoryName)\$($_.BaseName).docx"
$document.SaveAs([ref] $docx_filename, [ref]$Format)
$document.Close()
}
$word_app.Quit()
這段 PowerShell 的動作就像是我們開啟 Word 檔,然後執行另存新檔的動作,最後關閉 Word 應用程式。
同樣的操作方式,你可以已用來轉換其他的文件格式,例如:.xls
轉換成 .xlsx
,只是所需要的 PIA 要換成 Microsoft.Office.Interop.Excel.dll
。
參考資料: