我有一个测试PowerShell V2脚本,看起来像这样:
function test_args()
{
Write-Host "here's arg 0: $args[0]"
Write-Host "here's arg 1: $args[1]"
}
test_args
如果我在PowerShell命令提示符中调用此命令,我将在屏幕上看到以下内容:
here's arg[0]: [0]
here's arg[1]: [1]
似乎不是我想要的。在使用它们之前,似乎我必须将$args [0]和$args [1]复制到脚本中的新变量中?如果我这样做,我就可以很好地访问这些内容。
有没有一种方法可以在我的代码中访问索引的$args?我尝试以各种方式使用花括号包围它们,但没有成功。
我最终会转向命名参数,但我正在处理的脚本(而不是此演示)是批处理文件的直接移植。
$args[0]
这样的 表达式 - 而不仅仅是像$var
这样的变量引用 - 您需要使用子表达式运算符$(...)
;因此:"... $($args[0]) ..."
.有关PowerShell字符串扩展规则的简洁概述,请参见此答案。 - mklement0