gpt4 book ai didi

arrays - 将脚本参数传递给Powershell中的函数

转载 作者:行者123 更新时间:2023-12-02 23:04:57 25 4
gpt4 key购买 nike

我的脚本调用了一个需要从脚本调用中获取参数的函数:

function new( $args )
{
if( $args.length -lt 8 )
{
Write-Host "Parameter Missing, requires 8 Parameters. Aborting."!
Write-Host $args.length
break
}
}

switch ($args[0]) {
'--test' { }
'--new' { new $args }
default { }
}

当我调用它时,args数组不会移交给 new函数:
PS Q:\mles\etl-i_test> .\iprog.ps1 --new 1 2 3 4 5 6 7
Parameter Missing, requires 8 Parameters. Aborting. !
0

如何将数组传递给Powershell中的函数?还是具体地说,$ args数组? $ args数组的作用域不应该是全局的吗?

最佳答案

修改您的功能,如下所示:

function new { param([string[]] $paramargs)

if( $paramargs.length -lt 8 )
{
Write-Host "Parameter Missing, requires 8 Parameters. Aborting."!
Write-Host $paramargs.length
break
}
}

switch ($args[0]) {
'--test' { }
'--new' { new $args }
default { }
}

这将避免命令行中的 $arg变量和参数 $arg(已更改为 $paramarg)的歧义。

关于arrays - 将脚本参数传递给Powershell中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com