【问题标题】:Cannot process argument transformation on parameter error while calling function in powershell在powershell中调用函数时无法处理参数错误的参数转换
【发布时间】:2014-05-31 02:39:43
【问题描述】:

我有一个用于生成 xml 文件的 powershell 脚本。

我的脚本如下:

$filePath= "C:\Powershell\Report.xml"
if(Test-Path $filePath)
{
    Remove-Item $filePath
} 

#set encoding
$encoding = [System.Text.Encoding]::UTF8

# Create The Document
$XmlWriter = New-Object System.XMl.XmlTextWriter($filePath,$encoding)

# Set The Formatting
$xmlWriter.Formatting = "Indented"
$xmlWriter.Indentation = "4"

# Write the XML Decleration
$xmlWriter.WriteStartDocument()

SetNamespace($xmlWriter)

# Write Root Element
$xmlWriter.WriteStartElement($RootElement)

#set Root Element namespaces
SetRootElementNamespace($xmlWriter)

#Create <my:PruefAuftragHeader>

$Ablagenummer = "234"
$Beschrieb = "This is testing"
$Auftraggeber = @("ADAMS","Alu König Stahl","Caradon")

CreatePruefAuftragHeader($xmlWriter ,$Ablagenummer)



Function CreatePruefAuftragHeader([System.Xml.XmlTextWriter] $xmlWriter ,[String] $Ablagenummer)
{
    $xmlWriter.WriteStartElement($PruefAuftragHeaderElement) # opening <my:PruefAuftragHeader>

    $xmlWriter.WriteElementString($AblagenummerElement,$Ablagenummer)
    $xmlWriter.WriteElementString($BeschriebElement,$Beschrieb)

    foreach($elem in $Auftraggeber)
    {
        $xmlWriter.WriteElementString($AuftraggeberElement,$elem)
    }

    $xmlWriter.WriteEndElement #closing <my:PruefAuftragHeader>
}

当执行到达行时:CreatePruefAuftragHeader($xmlWriter ,$Ablagenummer) 它会抛出一个错误:Cannot process argument transformation on parameter 'xmlWriter'. Cannot convert the "System.Object[]" value of type "System.Object[]" to type "System.Xml.XmlTextWriter".

我应该怎么做才能解决这个错误?

【问题讨论】:

    标签: xml function powershell parameter-passing


    【解决方案1】:

    如果你这样调用脚本:

    CreatePruefAuftragHeader($xmlWriter ,$Ablagenummer)
    

    您将第一个参数作为数组类型传递

    你必须这样称呼它:

    CreatePruefAuftragHeader $xmlWriter $Ablagenummer
    

    在 powershell 中,脚本/函数的参数以空格分隔,不包含在 () 中。

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 2022-01-12
      • 2021-12-16
      • 2015-01-21
      • 1970-01-01
      • 2014-02-26
      • 2021-11-22
      • 2010-10-14
      • 2014-07-27
      相关资源
      最近更新 更多