- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为我儿子写的脚本有问题。我的意图是简单地提醒他记住他的家务。我最近才开始做 PowerShell,我真的很喜欢它。我买了几本书,浏览了许多其他帖子。
到目前为止,我得到的是下面的内容,似乎评估是否无法使用 -or
正常工作(或者也许我搞砸了?)
## REMINDERS TO DO CHORES ##
$sun = "Sunday"
$mon = "Monday"
$tue = "Tuesday"
$wed = "Wednesday"
$thu = "Thursday"
$fri = "Friday"
$sat = "Saturday"
$today = (get-date).DayOfWeek
$choreVac = "Vacuum the rooms and stairs"
$choreBath = "Clean the Bathroom Including emptying the garbage"
$choreOther = "No Chores Today -- But keep dishes done up"
if($today -eq $mon -or $wed -or $fri) {
msg /time:2500 * "Today is a Chore Day: your job is to $choreVac"
}
elseif ($today -eq $tue -or $sat ) {
msg /time:2500 * "Today is a Chore Day: your job is to $choreBath and PLEASE do a good job"
}
else {
msg /time:2500 * $choreOther
}
问题是我不认为它在当天被正确评估,所以今天是星期二,评估结果是 $mon -or $wed -or $fri
如果我每天按如下方式重新编码,它会按预期工作。为什么它不适用于 -or
?
if($today -eq $tue) {
msg /time:2500 * $choreBath
}
最佳答案
就像您自己发现 PowerShell 没有评估您的 if 语句您希望它成为什么。你的表达可以像这样更好地理解:
if(($today -eq $mon) -or ($wed) -or ($fri))
正如在您的评论中,您想要的代码是
$today -eq $mon -or $today -eq $wed -or $today -eq $fri
或者换一种方式来看待它。
($today -eq $mon) -or ($today -eq $wed) -or ($today -eq $fri)
PowerShell 不需要括号,但如果事情不顺利,最好使用它们。
当 PowerShell 中的非空/零长度字符串被转换为 bool 值时为 true
。关注第二个子句,它可以重写为
"Wednesday" -or "Friday"
总是 true
。这就是为什么您的 if
语句在您没有预料到的时候被触发的原因。
您编写的代码具有一定的逻辑意义,但在句法上不正确。我想向您介绍的另一种方法是 switch
,如果您还不熟悉的话。 .这将有助于减少所有 if
语句的困惑,并且如果它们随着杂务的发展而变得更加复杂,将会特别有用。
$today = (get-date).DayOfWeek
$choreVac = "Vacuum The Apt"
$choreBath = "Clean the Bathroom Including empting the garbage"
$choreOther = "NO CHORES TODAY -- BUT YOU CAN Keep dishes done up, and Keep Garbage from Overflowing AND CLEAN YOUR ROOM and OR Do Laundry!!!. Especially your bedding"
Switch ($today){
{$_ -in 1,3,5}{$message = "Today is a Chore Day: Your job is to`r$choreVac"}
{$_ -in 2,6}{$message = "Today is a Chore Day: Your job is to`r$choreBath and PLEASE do a good job"}
default{$message = $choreOther}
}
msg /time:2500 * $message
我们将对 msg
的所有调用都删除到一个语句中,因为只有 $message
发生了变化。如果杂务日没有包含在开关中的子句,那么默认值只是 $choreOther
。
星期几也可以表示为整数,就像您在上面看到的那样。这可能会降低代码的可读性,但我认为这是一种延伸。
关于powershell - If/ElseIf block 不适用于 -or,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32084671/
使用之间真的有什么区别吗 If(this) { } Else If(that) { } Else { } 或使用, If(this) { } If(that) { } Else { } ? 执行速度更
我想在 netlogo 中有一个 if elseif else if else 结构,但目前它似乎不起作用。 ifelse random 100 < 68 [ set HBB-Genes "A,A
This question already has answers here: PHP parse/syntax errors; and how to solve them (19个回答) 2年前关闭
我正在通过特定于国家/地区的代码过滤我网站上的一些内容,我正在尝试添加 else 语句,这样它就不必将每个部分都作为单独的代码运行,除非我尝试的任何操作都会出错: 上面给出了以下错
每个人! 我有一个沉重的文件,在 A 和 D 列中有不同的值。 现在我想让这个脚本完成以下操作: 如果 A 列中的值是 D 列中的“选项一”和“K”,则删除这一整行。 此外,如果 A 列中的值为“选项
我正在编写一个脚本,允许用户按名称或数字输入月份。在下面的语句中,我可以在输入框和行中输入任何我想要的内容: ElseIf sMonthOfMaintenance = "1" Or "2" O
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
当语句 block 相当短时,我喜欢在多行中构造 if {} {} elseif {} {} ,如下所示。 if {cond1} {do1} elseif {cond2} {do2} elseif {
在我的提交按钮中,if/else if 语句对于我的正确/不正确输出无法正常工作。 例如问题:维多利亚在哪里?答案:不列颠哥伦比亚省 - 不正确。但是,如果我回答:艾伯塔省或不列颠哥伦比亚省,那就是正
当语句 block 相当短时,我喜欢在多行中构造 if {} {} elseif {} {} ,如下所示。 if {cond1} {do1} elseif {cond2} {do2} elseif {
我有这段代码: @Override public void inform(String data) { if (data.equals(C.SubscriptionEvents.WINDOW_
你好,我是 PHP 新手。 所以我在这里有一个查询,检查数据库中订单总计的状态是否设置为1或0 $chk_dscnt=mysql_query("SELECT * FROM `discount` WHE
我正在努力学习 C++。当我尝试执行 else 时,它没有按我认为的方式工作。 我已经尝试了所有我能想到的。 #include using namespace std; int main() {
我正在尝试使我的表单验证和数据库插入脚本正常工作,但再次遇到问题。我正在使用 elseif 语句来执行以下操作: 检查表单是否确实是由用户单击提交按钮提交的,并且所有数据字段均已填写,如果没有,则发出
如果我有两个参数“parameterX”和“parameterY” 我将使用“parameterX”和“parameterY”来推荐 sql snytax 喜欢 select * from test.
首先,当我提交时,我的选择选项有效,但我的输入字段无效。我正在使用 if else if 语句根据选项查询我的数据库。 我怀疑这部分 elseif 不起作用: elseif ($option == "
我在一些 if-else 子句中挣扎,想就如何设置逻辑提出建议。 我有以下代码: //if isset a or b if (isset(a) || isset(b) ) { //if
我试图在 Python 的 PuLP 中构建 If-Then-Else-If... 条件。 我查看了 MIP 中的 If-Then 和 If-Then-Else。但是,我试图了解如何将选择进一步向下传
虽然在这个程序中,我必须在一个循环中一次又一次地输入温度。当我输入温度后显示正确时,但是当我再次输入温度时程序自行终止。 代码是: import java.util.Scanner; public c
我的问题是如何用数学公式替换那些 if? if ($l 的形式.那是什么东西? 就像你说的,每 500 级你提高 20。所以我们知道我们移动 20/500对于每 1 个级别(因为好吧,如果我们将其乘以
我是一名优秀的程序员,十分优秀!