powershell第一个参数是object []类型?

时间:2015-03-03 10:27:48

标签: powershell

如果我在PowerShell ISE中运行以下代码

cls
Function XmlTransformaton ($sourceFile, $targetFile, $xsltFile)
{
    echo "sourceFile: " + $sourceFile.GetType();
    echo "targetFile: $targetFile";
    echo "xsltFile: $xsltFile";
}
XmlTransformaton("C:\temp\TransfromTest\Test.rdl", "C:\temp\TransfromTest\Test.rdl", "C:\temp\TransfromTest\Test.xslt");

我得到以下输出

sourceFile: 
+

IsPublic IsSerial Name                                     BaseType                                          
-------- -------- ----                                     --------                                          
True     True     Object[]                                 System.Array                                      
targetFile: 
xsltFile: 

为什么地球上是类型数组的第一个参数?结果是所有其他参数都是空的!

1 个答案:

答案 0 :(得分:2)

因为您将数组作为第一个(也是唯一的)参数传递。看起来你想要这样做:

XmlTransformaton "C:\temp\TransfromTest\Test.rdl" "C:\temp\TransfromTest\Test.rdl" "C:\temp\TransfromTest\Test.xslt"

给出了:

sourceFile:
+

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object
targetFile: C:\temp\TransfromTest\Test.rdl
xsltFile: C:\temp\TransfromTest\Test.xslt

多个参数作为Some-Function $param1 $param2 $paramN传递给函数,不需要使用括号和逗号分隔的args - 这就是构造数组的方法