For script (foo.ps1):
param($a1, $a2, $a3, [hashtable]$a4) "a1 is $a1" "a2 is $a2" "a3 is $a3" "a4 is " $a4
You can call it from cmd.exe so that you specify the hash table as the fourth parameter:
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
Keith hill
source share