我有一个 Powershell (2.0) 脚本,用于Microsoft.Office.Interop.Word.WdSaveFormat
在 Word 中递归打开一系列 html 文件,然后分别使用wdFormatDocument
和wdFormatDOSText
参数另存为 Word 和 Text。该脚本包含每个文档类型的单独函数。
昨天,需求变了,我现在也需要输出一个 RTF 文档。我添加了$saveFormatRTF
变量
$saveFormatDoc = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat], "wdFormatDocument");
$saveFormatTxt = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat], "wdFormatDOSText");
$saveFormatRTF = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat], "wdFormatRTF");
并得到以下错误。
Unable to find type [Microsoft.Office.Interop.Word.WdSaveFormat]: make sure that the assembly containing this type is l
oaded.
At C:\users\x46332\Desktop\cgc\CGC002.PS1:68 char:76
+ $saveFormatDoc = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat] <<<< , "wdFormatDocument");
+ CategoryInfo : InvalidOperation: (Microsoft.Offic...rd.WdSaveFormat:String) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
Unable to find type [Microsoft.Office.Interop.Word.WdSaveFormat]: make sure that the assembly containing this type is l
oaded.
At C:\users\x46332\Desktop\cgc\CGC002.PS1:69 char:76
+ $saveFormatTxt = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat] <<<< , "wdFormatDOSText");
+ CategoryInfo : InvalidOperation: (Microsoft.Offic...rd.WdSaveFormat:String) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
Unable to find type [Microsoft.Office.Interop.Word.WdSaveFormat]: make sure that the assembly containing this type is l
oaded.
At C:\users\x46332\Desktop\cgc\CGC002.PS1:70 char:76
+ $saveFormatRTF = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat] <<<< , "wdFormatRTF");
+ CategoryInfo : InvalidOperation: (Microsoft.Offic...rd.WdSaveFormat:String) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
运行将 JUST 转换为 Word 和 Text 的脚本工作正常。单独运行 RTF 就好了。但是,每当我将脚本中的 RTF 与其他输出格式结合起来时,脚本中引用的所有输出格式都会显示为“未找到”。RTF需要自己导出吗?我可以在一个脚本中拥有多少种输出文件类型是否有限制(尽管它们都是独立的函数)?有没有我没有设置的参数?
我已经验证了输出的成员名称是正确的,并且我已经扫描了MSDN以寻找线索,但找不到任何会导致这种行为的东西,尤其是在将 RTF 添加到混合中时的不可预测的结果。有任何想法吗?