Powershell seems to drop empty string arguments when passed to a command. I have this code
PS D:\\> $b.name = \"foo bar\"
PS D:\\> ./echoargs $b.name
A
This should also work:
./echoargs [String]::Empty
If you want an empty string to appear try escaped quotes around the argument like so:
PS> $b = [psobject]@{name = ''}
PS> echoargs `"$($b.Name)`"
Arg 0 is <>
Command line:
"C:\Users\Keith\Pscx\Trunk\Src\Pscx\bin\Release\Apps\EchoArgs.exe" ""
Note that I tested this on V3 so I'm not sure if the behavior will be exactly the same on V2.
Try to pass an empty single quote string enclosed in double quotes, or vice versa.
./echoargs $b.name, "''"
or
./echoargs $b.name, '""'