Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何为Powershell指定启动方法_Function_Powershell_Startup - Fatal编程技术网

Function 如何为Powershell指定启动方法

Function 如何为Powershell指定启动方法,function,powershell,startup,Function,Powershell,Startup,我已经编写了一个Powershell脚本,在控制台上,我通常指定start函数来启动脚本执行。但是我希望脚本本身应该指定启动函数,例如,当我运行脚本时,My function自身开始执行。i、 e只需键入脚本名称并输入。>myscript.ps1,它就可以从My Function开始执行。如何在脚本中指定启动函数 如前所述,您可以将该代码移出函数(实际上我通常不建议这样做),或者直接调用函数: function MyFunc { # stuff } MyFunc PowerShell

我已经编写了一个Powershell脚本,在控制台上,我通常指定start函数来启动脚本执行。但是我希望脚本本身应该指定启动函数,例如,当我运行脚本时,
My function
自身开始执行。i、 e只需键入脚本名称并输入
。>myscript.ps1
,它就可以从
My Function
开始执行。如何在脚本中指定启动函数

如前所述,您可以将该代码移出函数(实际上我通常不建议这样做),或者直接调用函数:

function MyFunc {
    # stuff
}

MyFunc
PowerShell没有入口点的概念,如果这正是您所考虑的

一个更通用的解决方案是,您可能希望指定一个函数作为脚本中的参数调用,但具有默认值,您可以使脚本将函数名作为具有默认值的参数

最重要的是:

[CmdletBinding()]
param(
    $FunctionName = 'Func1'
)

function Func1 {
    # does stuff
}

function Func2 {
    # does other stuff
}

Invoke-Expression -Command $FunctionName

我真的不喜欢这个。这是很危险的(任何作为函数名传入的PowerShell代码都会被执行)。

只需删除该函数。@Gerald:出于某种原因,我不想删除,有什么解决方案吗?或者,您可以在定义之后立即调用它。这让它变得毫无意义。