powershell参数命令行菜单

时间:2018-11-19 19:27:47

标签: powershell powershell-v3.0

我希望创建一个脚本,该脚本接受来自命令行的输入,并基于第一个值,然后确定要提供的下一个参数。

例如确定要对密码更改操作执行一次运行还是批量运行:

./ script.ps1 -singleMODE-用户名-密码

./ script.ps1 -batchMODE-文件名

在学习Powershell时,我感到困惑的是什么?我看了Parameters并可以从命令行将其读入变量...但是如上所述,我想要的是具有一定逻辑的,我有点迷失了。有人可以向我介绍一下这是什么。...然后我可以继续进行谷歌搜索! :)

我在想我以某种方式结合了参数和函数,因此它会跳到不同的块...但是我正在猜测

任何帮助表示赞赏! :)

欢呼

1 个答案:

答案 0 :(得分:3)

您需要的是参数集

这是一个具有功能的演示,但它与脚本同样有效(只需将param块放在顶部。)

function Demo {
    param(
        [Parameter(ParameterSetName='Funk')][switch]$Funk,
        [Parameter(ParameterSetName='Rock')][switch]$Rock,
        [Parameter(ParameterSetName='Funk')][string]$WriteFunk,
        [Parameter(ParameterSetName='Rock')][string]$WriteRock
    )
    if($Funk){
        foreach ($C in $WriteFunk.ToCharArray()){
            $N = 0..15 | Get-Random
            Write-Host $C -ForegroundColor $N -BackgroundColor $(15-$N) -NoNewline
        }
        Write-Host ''
    }
    if($Rock){
        Write-Host $WriteRock -ForegroundColor Gray -BackgroundColor DarkGray
    }
}

Demo -Funk -WriteFunk "Melt your brain"
Demo -Rock -WriteRock "Riders on the storm"