用于将单词表转换为文本的Powershell脚本

时间:2018-02-05 17:01:30

标签: powershell vbscript ms-word

我有这个脚本应该将第一个表从word文档转换为文本,但遗憾的是它什么也没做:

$word = New-Object -ComObject word.application
$word.visible = $false
$folderpath = "C:\mypath\myfile.docx"
$Doc = $word.Documents.open($folderpath)
$Doc.Tables.item(1).ConvertToText
$Doc.saveas([ref]$folderpath, [ref]$SaveFormat::wdFormatDocumentDefault)
$Doc.close()
$word.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($word)

然而,使用具有基本相同代码的VB脚本可以完美地完成这个看似简单的任务:

Dim wrdApp: Set wrdApp = WScript.CreateObject(""Word.Application"")
Dim wrdDoc
Set wrdDoc = wrdApp.Documents.Open("C:\mypath\myfile.docx")
wrdDoc.Tables(1).ConvertToText
wrdDoc.SaveAS ("C:\mypath\myfile.docx")
wrdDoc.Close SaveChanges=True
wrdApp.Quit
Set wrdApp = Nothing
Set wrdDoc = Nothing

有人能指出我对powershell脚本根本没有转换表的原因吗?

谢谢! Tiaan

1 个答案:

答案 0 :(得分:1)

我尝试了以下代码,它对我有用。和你的一模一样。您需要在方法convertToText的末尾添加括号(在vbscript中不需要),只需保存文档。

$word = New-Object -ComObject word.application
$word.visible = $false
$path = "C:\mypath\myfile.docx"
$Doc = $word.documents.open($path)
$Doc.Tables.item(1).convertToText()    # <--- Add parenthesis () at the end
$Doc.save
$Doc.close
$word.quit