2011-02-18 14 views
6

¿Hay alguna manera en PowerShell de pasar una HashTable como argumento cuando se invoca con cmd.exe?cmd.exe powershell HashTable

Quiero invocar un script como el siguiente:

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

Dónde arg4 es una tabla hash. es posible?

Respuesta

11

Dada una secuencia de comandos (foo.ps1) así:

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

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

Puede invocar desde cmd.exe al igual que especifica una tabla hash como el cuarto parámetro:

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

Lo único que se le viene a la mente es guardar la tabla hash como xml y pasarle el nombre del archivo.