2015-03-03 60 views
0

如果我在PowerShell ISE中運行下面的代碼powershell第一個參數是類型object []?

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: 

爲什麼地球上是類型數組的第一個參數?其結果是所有其他參數都是空的!

回答

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 - 這就是你如何構建一個數組

相關問題