使用splat将命令行参数传递给函数的功能不如我在Powershell 2.0中所期望的那样。我确定这是用户错误,但我无法找到解决方案。
简而言之,我试图传递命令行中指定的参数 直到一个函数,一旦我提取了全局参数 脚本。以下脚本是我看到的问题的主要内容:
# Named parameters.
Param([switch]$Foo)
# Function
function my_function {
Param(
[string]$Bar,
[string]$Baz,
[string]$Bat
)
Write-Output "==========="
Write-Output "Value of function parameters:"
Write-Output $Bar
Write-Output $Baz
Write-Output $Bat
Write-Output "==========="
}
Write-Output "==========="
Write-Output "Value of `$args:"
Write-Output $args
Write-Output "==========="
my_function @args
$h = @{ Bar=0; Baz=1; Bat=2 }
my_function @h
我的输出是:
PS C:\temp> .\test-script -Bar 0 -Baz 1 -Bat 2
===========
Value of $args:
-Bar
0
-Baz
1
-Bat
2
===========
===========
Value of function parameters:
-Bar
0
-Baz
===========
===========
Value of function parameters:
0
1
2
===========
PS C:\temp>
根据我对splat
功能的理解,这两个Value of function parameters
部分看起来应该相同。
答案 0 :(得分:1)
如有疑问,请阅读http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html:
从Windows PowerShell 3.0开始,您还可以使用splatting来表示命令的所有参数。