Powershell 在函数之间传递参数的最佳实践?
我创建了一个powershell函数来部署存储过程:Powershell 在函数之间传递参数的最佳实践?,powershell,Powershell,我创建了一个powershell函数来部署存储过程: Function Deploy-Procedures { param( [Parameter(Position = 0, Mandatory=$true)] [string[]] $files, [Parameter(Position = 1, Mandatory=$true)] [string] $databaseServer, [Parameter
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中的名词
是单数。考虑调用函数<代码>部署过程< /代码> .<