如果我在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:
为什么地球上是类型数组的第一个参数?结果是所有其他参数都是空的!
答案 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 - 这就是构造数组的方法