【发布时间】:2020-11-01 19:28:19
【问题描述】:
我是 PowerShell 的新手。
在Msys2(或Lnux)中,我定义了一个函数npp
npp ()
{
${NPP_PATH} "$@"
}
这样,如果我从命令提示符npp 调用它会启动 Notepad++(如${NPP_PATH} 中所定义)。
如果我打电话给npp "mydir/stage 1/a.txt",它会打开该文件进行编辑。
一般来说,它允许:
- 任意数量的参数。
- 包含空格的参数(如果进行了适当的转义)。
PowerShell 中的等价物是什么?
我想在 PS 中我也应该使用一个函数来获得类似的行为。
到目前为止,我可以接收未定义数量的参数,并在foreach 循环中使用它们,请参见下面的代码。
但是我找不到与简单的"$@" 等效的方法来传递所有接收到的参数。
此外,如果我在其中一个参数中使用引号,它们会被删除,因此文件路径可能会出现问题,包括空格。
function multi_params {
param(
[Parameter(
ValueFromRemainingArguments=$true
)][string[]]
$listArgs
)
$count = 0
foreach($listArg in $listArgs) {
'$listArgs[{0}]: {1}' -f $count, $listArg
$count++
}
}
【问题讨论】:
标签: function powershell parameters variadic-functions