Powershell 在函数之间传递参数的最佳实践?

Powershell 在函数之间传递参数的最佳实践?,powershell,Powershell,我创建了一个powershell函数来部署存储过程: Function Deploy-Procedures { param( [Parameter(Position = 0, Mandatory=$true)] [string[]] $files, [Parameter(Position = 1, Mandatory=$true)] [string] $databaseServer, [Parameter

我创建了一个powershell函数来部署存储过程:

Function Deploy-Procedures {
    param(
        [Parameter(Position = 0, Mandatory=$true)] 
        [string[]] $files,
        [Parameter(Position = 1, Mandatory=$true)] 
        [string] $databaseServer,
        [Parameter(Position = 2, Mandatory=$true)] 
        [string] $databaseName,
        [string] $databaseUserName,
        [string] $databasePassword,
        [byte] $numRetries = 2
    )  

现在,此过程作为独立程序运行。您会注意到
$files
变量只是一个字符串数组。执行脚本的个人只需传递要部署的文件数组。我想创建另一个powershell脚本,该脚本处理需要部署的文件列表,并将这些文件通过管道传输到部署过程脚本。我从未处理过一个函数,它要么必须将信息传递给另一个命令,要么必须接受管道信息。是否有实现这一目标的最佳实践?是否应该将类型从字符串数组更改为其他类型?

这取决于生成文件列表的函数的输出类型。如果是字符串(路径),则可以执行以下操作:

[Parameter(Position = 0, Mandatory=$true, ValueFromPipeline=$true)] 
[ValidateNotNullOrEmtpy()]
[string[]] $Files,
如果希望部署过程函数使用Get-ChildItem(或Get-Item)生成的文件列表,请执行以下操作:


我还建议将参数从$files重命名为$Path。对于其他最佳实践,我使用高级函数参数与其他PowerShell命令保持一致。最后一个最佳实践,通常PowerShell中的
名词
是单数。考虑调用函数<代码>部署过程< /代码> .< /p> 这取决于生成文件列表的函数的输出类型。如果是字符串(路径),则可以执行以下操作:

[Parameter(Position = 0, Mandatory=$true, ValueFromPipeline=$true)] 
[ValidateNotNullOrEmtpy()]
[string[]] $Files,
如果希望部署过程函数使用Get-ChildItem(或Get-Item)生成的文件列表,请执行以下操作:

我还建议将参数从$files重命名为$Path。对于其他最佳实践,我使用高级函数参数与其他PowerShell命令保持一致。最后一个最佳实践,通常PowerShell中的
名词
是单数。考虑调用函数<代码>部署过程< /代码> .<