首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell if-else

Powershell if-else
EN

Stack Overflow用户
提问于 2017-12-11 23:25:39
回答 4查看 1.2K关注 0票数 1

我想写一段powershell代码,比如当你输入Laskopia | LevTest | Drift | Pretest时,它会检查它是否正确,并返回它是正确的,如果它不正确,则返回它是错误的

代码语言:javascript
复制
$Miljö = Read-Host "Enter Laskopia | LevTest | Drift | Pretest"

If ($Miljö -eq "Laskopia") { $Miljö = "Laskopia" }
If ($Miljö -eq "Levtest") { $Miljö = "Levtest" }
If ($Miljö -eq "Drift") { $Miljö = "Drift" }
If ($Miljö -eq "Pretest") { $Miljö = "Pretest" }
Write-Host "Miljön is $Miljö" -ForegroundColor Green 

else
Write-Host "Miljön finns inte" -ForegroundColor Red
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-12-11 23:45:29

为了避免重复,最好将这些有效值保存在数组中,并使用下面的脚本:

代码语言:javascript
复制
$ValidValues = @("Some value", "Another", "Another one")
$Value = Read-Host "Enter one of following values: $($ValidValues -join " | ")"
if($ValidValues -icontains $Value){
    Write-Host "Value = $Value" -ForegroundColor Green
} else {
    Write-Host "$Value is not a value value." -ForegroundColor Red
}
票数 1
EN

Stack Overflow用户

发布于 2017-12-11 23:39:47

您也可以使用switch语句来实现这一点:

代码语言:javascript
复制
$Miljö = Read-Host "Enter Laskopia | LevTest | Drift | Pretest"
switch ($Miljö) 
{ 
    {$_ -in "Laskopia", "Levtest", "Drift", "Pretest"} { Write-Host "Miljön is $Miljö" -ForegroundColor Green }
    default { Write-Host "Miljön finns inte" -ForegroundColor Red }
}

对于-in操作符,您需要Powershell3.0

票数 4
EN

Stack Overflow用户

发布于 2017-12-11 23:45:22

代码语言:javascript
复制
if ($Miljö -in ('Laskopia','LevTest','Drift','Pretest')) {
    Write-Host "Miljön is $Miljö" -ForegroundColor Green 
}
else {
    Write-Host "Miljön finns inte" -ForegroundColor Red
}

为了从固定的选择中强制正确的用户输入,通常更好的做法是这样做:

代码语言:javascript
复制
do {
    $Miljö = Read-Host "Enter Laskopia | LevTest | Drift | Pretest"
while ($Miljö -notin ('Laskopia','LevTest','Drift','Pretest'));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47756094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档