2011-02-18 68 views
6

在使用cmd.exe調用時,PowerShell中是否有方法將HashTable作爲參數傳遞?cmd.exe powershell HashTable

我想調用腳本是這樣的:

powershell "& 'C:\path\to\file.ps1 arg1 arg2 arg3 arg4'" 

凡ARG4是一個哈希表。這可能嗎?

回答

11

給定一個腳本(foo.ps1)是這樣的:

param($a1, $a2, $a3, [hashtable]$a4) 

"a1 is $a1" 
"a2 is $a2" 
"a3 is $a3" 
"a4 is " 
$a4 

您可以從CMD.EXE調用它像這樣指定一個哈希表的第四個參數:

C:\> powershell -command "& {c:\foo.ps1 1 2 three @{name='John';age=45}}" 
a1 is 1 
a2 is 2 
a3 is three 
a4 is 

Name       Value 
----       ----- 
name       John 
age       45 
0

唯一想到的是將散列表保存爲xml,並將其傳遞給文件名。