powershell - If 和 ElseIf 语句在 PowerShell 中不起作用?
问题描述
我在下面编写了以下 PowerShell 脚本:
if ($Animal -eq "Chicken") {
if ($Food -eq "Egg") {
Write-Host "This chicken eats egg"
} ElseIf ($Food -eq "Soup") {
Write-Host "This chicken eats soup"
} ElseIf ($Animal -eq "Cow") {
if ($Food -eq "Egg") {
Write-Host "This cow eats egg"
} ElseIf ($Food -eq "Soup") {
Write-Host "This cow eats soup"
} ElseIf ($Animal -eq "Zebra") {
if ($Food -eq "Egg") {
Write-Host "This zebra eats egg"
} ElseIf ($Food -eq "Soup") {
Write-Host "This zebra eats soup"
该脚本适用于鸡和牛,但不注册代码的斑马部分。我不确定我做错了什么,因为没有返回错误。有人可以提供一些指导吗?
解决方案
虽然我完全同意 Doug 的回答,但我完全不知道您为什么首先使用 if 语句。如果这是一个学习练习,我建议使用如下 switch 语句:
$Animal = "Zebra"
$Food = "Soup"
$output = ""
switch ($Animal){
"Chicken" { $output = "This $($Animal) eat $($Food)"; break}
"Cow" { $output = "This $($Animal) eat $($Food)"; break }
"Zebra" { $output = "This $($Animal) eat $($Food)"; break }
}
Write-Output $output
或者只是输出值而不进行不必要的检查:
$Animal = "Zebra"
$Food = "Soup"
Write-Output "This $($Animal) eat $($Food)"
推荐阅读
- javascript - 无法打印出 json 中的属性
- c# - C# XML 多个子子项
- java - 在流中找到比最大值少几次的值
- terraform - 使用预安装的 Terraform 插件,而不是使用 terraform init 下载它们
- hashicorp-vault - 保险柜:如何创建秘密 ID
- java - 将资源文件夹中的 JAR 添加到 Maven 中的类路径
- python - Pandas:删除具有 nan 值索引的行
- wpf - 使用文本大小放大单选按钮和复选框项目符号绑定
- r - r - 将 filter() 应用于 data.frame 的难度
- asp.net - 如何使用asp.net和angularJS将文件Excel导入数据库中的多个表?