Dom*_*tti 1 powershell parameter-passing
我熟悉如何从命令行接受参数或参数并将它们传递给 PowerShell:
powershell.exe -file myscript.ps1 -COMPUTER server1 -DATA abcd
Run Code Online (Sandbox Code Playgroud)
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[string]$computer,
[Parameter(Mandatory=$True)]
[string]$data
)
Run Code Online (Sandbox Code Playgroud)
这很好,但是如果$computer参数不止一个项目并且项目数量未知怎么办?例如:
Powershell.exe -file myscript.ps1 -COMPUTER server1, server2, server3 -DATA abcd
Run Code Online (Sandbox Code Playgroud)
这里我们不知道$computer会有多少项目。总会有一个,但也可能有 2、3、4 等。这样的事情如何才能最好地实现?
您可以通过使用来使参数[String]$Computer接受多个字符串(或array)[String[]]$Computer。
例子:
Function Get-Foo {
[CmdletBinding()]
Param (
[Parameter(Mandatory=$True)]
[String[]]$Computer,
[Parameter(Mandatory=$True)]
[String]$Data
)
"We found $(($Computer | Measure-Object).Count) computers"
}
Get-Foo -Computer a, b, c -Data yes
# We found 3 computers
Get-Foo -Computer a, b, c, d, e, f -Data yes
# We found 6 computers
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2021 次 |
| 最近记录: |