我想编写一个接受参数并使用函数的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

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

最佳答案

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

param
(
  $arg
)

function Func($arg)
{
  $arg
}

Func $arg

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

关于具有参数*和*功能的Powershell脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14902501/

10-11 02:28