5

我想编写一个接受参数并使用函数的powershell脚本。

我试过这个:

param
(
  $arg
)

Func $arg;


function Func($arg)
{
  Write-Output $arg;
}

但我得到了这个:

The term 'Func' is not recognized as the name 
of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, 
verify that the path is correct and try again.
At func.ps1:6 char:5
+ Func <<<<  $arg;
    + CategoryInfo          : ObjectNotFound: (Func:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

好吧,我想。我会试试这个:

function Func($arg)
{
  Write-Output $arg;
}


param
(
  $arg
)

Func $arg;

但后来,我得到了这个:

The term 'param' is not recognized as the name 
of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, 
verify that the path is correct and try again.
At C:\Users\akina\Documents\Work\ADDC\func.ps1:7 char:10
+     param <<<<
    + CategoryInfo          : ObjectNotFound: (param:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

我要求的可行吗?还是我的要求不合理?

4

3 回答 3

19

脚本中的参数块必须是第一个非注释代码。之后,您需要在调用它之前定义该函数,例如:

param
(
  $arg
)

function Func($arg)
{
  $arg
}

Func $arg

在您的示例中,Write-Output 是不必要的,因为默认行为是将对象输出到输出流。

于 2013-02-15T20:20:10.420 回答
4

您只需要 ius 来确保 PARAM 是脚本的第一个字符串。

于 2015-01-11T17:57:08.850 回答
-3

您可以将参数标签放在函数内..

像这样的东西:

function func($avg)
{
    param
    (
         $avg
    )
}
于 2013-12-19T14:06:11.287 回答