具有更多价值的参数

时间:2018-12-11 11:10:02

标签: powershell parameters

使用CMD和批处理的早期,我使用shift命令。

我如何使用PowerShell? 这是我的样本:

# test.ps1
# start ps script with parameters
param(
    [string]$varmon)

if ($varmon) {
    foreach ($var in $varmon) {
        Write-Host $var
    }
}
  

PS CLI:。\ test.ps1一二三

我只得到“一个”。如何用多个参数启动脚本?

1 个答案:

答案 0 :(得分:2)

您可以使用the automatic variable $args

# test.ps1
# start ps script with parameters
foreach ($var in $args){
    write-host $var
}

数组允许您输入可变数量的参数-一天结束时$args只是为未分配的变量创建的自动数组。

数组参数以逗号分隔,而不是空格-下面的示例。

test.ps1

# test.ps1
# start ps script with parameters
param(
    [int[]]$numbers,
    [string[]]$names
)

if($numbers){
    Write-host "`nYou have entered the following numbers:"
    foreach ($num in $numbers){
        write-host "Number     : $num"
        Write-host "Square root: $([system.math]::sqrt($num))"
    }
}

if($names){
    Write-host "`nYou have entered the following names:"    
    foreach($name in $names){
        Write-host $name
    }
}

示例1:,无需使用参数名称,就需要按顺序排列数组。因此,$numbers首先,$names其次

  

PS CLI:。\ test.ps1 4,9,16 john,jim,jane


示例1:使用参数名称,您可以更改顺序。

  

PS CLI:。\ test.ps1-名称john,jim,jane-数字4,9,16