Powershell:我可以拥有的输出文件类型数量是否有限制?

时间:2013-02-21 11:51:00

标签: error-handling powershell-v2.0 file-conversion

我有一个Powershell(2.0)脚本,它使用Microsoft.Office.Interop.Word.WdSaveFormat以递归方式在Word中打开一系列html文件,然后使用wdFormatDocumentwdFormatDOSText保存为Word和文本参数分别。该脚本包含每种文档类型的单独函数。

昨天,需求发生了变化,我现在也需要输出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是否需要单独导出?我可以在一个脚本中拥有多少输出文件类型(但它们都是单独的函数)?我有没有设置一些参数?

我输出verified that the member names是正确的,我已经扫描MSDN寻找线索,但找不到任何可能导致此行为的内容,尤其是在向混合添加RTF时出现不可预测的结果。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我做了一些进一步的测试,几天后我能够毫无困难地按预期进行转换。我还测试了使用单个脚本转换为每种格式listed here ...除了特殊字符的一些时髦输出格式外,一切都很好。

所以,我猜测没有限制,我的测试似乎证明了这个理论。