powershell中的读取主机工作不正常
我只是无法让read host yes/no提示正常工作powershell中的读取主机工作不正常,powershell,Powershell,我只是无法让read host yes/no提示正常工作 do { $answer = Read-Host "yes or no" } until ("yes","no" -ccontains $answer) if ($answer = "$yes"){ write-host "time is enabled" } Else { write-host "time service disabled" } 它总是跳转到其他地方,对不起,我是新来的 欢呼声常见语法错误-不要在您指的
do { $answer = Read-Host "yes or no" }
until ("yes","no" -ccontains $answer)
if ($answer = "$yes"){
write-host "time is enabled"
} Else {
write-host "time service disabled"
}
它总是跳转到其他地方,对不起,我是新来的
欢呼声常见语法错误-不要在您指的是
-eq
:)的地方使用=
)
if($answer-eq“yes”){
常见语法错误-不要使用=
,您的意思是-eq
:)
if($answer-eq“yes”){
常见语法错误-不要使用=
,您的意思是-eq
:)
if($answer-eq“yes”){
常见语法错误-不要使用=
,您的意思是-eq
:)
如果($answer-eq“yes”){
您提供的代码包含打字错误,-ccontains应该是-contains
另外,行:($answer=“$yes”)将$answer变量与$yes变量进行比较,您提供的代码段中不存在该变量
如果要查看$answer变量是否等于“yes”,请从字符串开头删除美元符号
以下是更正的版本:
do { $answer = Read-Host "Yes or no" }
until ("yes","no" -contains $answer)
if ($answer -eq "yes")
{
write-host "time is enabled"
}
else
{
write-host "time service disabled"
}
您提供的代码包含输入错误,-ccontains应该是-contains 另外,行:($answer=“$yes”)将$answer变量与$yes变量进行比较,您提供的代码段中不存在该变量 如果要查看$answer变量是否等于“yes”,请从字符串开头删除美元符号 以下是更正的版本:
do { $answer = Read-Host "Yes or no" }
until ("yes","no" -contains $answer)
if ($answer -eq "yes")
{
write-host "time is enabled"
}
else
{
write-host "time service disabled"
}
您提供的代码包含输入错误,-ccontains应该是-contains 另外,行:($answer=“$yes”)将$answer变量与$yes变量进行比较,您提供的代码段中不存在该变量 如果要查看$answer变量是否等于“yes”,请从字符串开头删除美元符号 以下是更正的版本:
do { $answer = Read-Host "Yes or no" }
until ("yes","no" -contains $answer)
if ($answer -eq "yes")
{
write-host "time is enabled"
}
else
{
write-host "time service disabled"
}
您提供的代码包含输入错误,-ccontains应该是-contains 另外,行:($answer=“$yes”)将$answer变量与$yes变量进行比较,您提供的代码段中不存在该变量 如果要查看$answer变量是否等于“yes”,请从字符串开头删除美元符号 以下是更正的版本:
do { $answer = Read-Host "Yes or no" }
until ("yes","no" -contains $answer)
if ($answer -eq "yes")
{
write-host "time is enabled"
}
else
{
write-host "time service disabled"
}
主要问题在于行
if($answer=“$yes”)
- 首先,
始终意味着在PowerShell中分配。要比较这些值,可以使用=
运算符-eq
- 其次,比较值
也被无意中使用。由于未定义变量“$yes”
,操作数的计算结果为空字符串$yes
”
- 最终结果是,
被$answer
覆盖,然后由“
语句对其进行评估,从而进入if
块else
if($answer-eq'yes')
将解决此问题
此外,在
do
/until
循环中使用区分大小写的-ccontains
运算符的限制性比需要的更大。PowerShell中的默认设置是进行不区分大小写的比较,以便输入yes
,或yes
或都将通过
或者,如果区分大小写对您的场景很重要,您可能希望在整个脚本中始终使用区分大小写的运算符(即在if
语句中使用-ceq
)
有关更多信息,请参阅帮助主题。主要问题在于行if($answer=“$yes”)
- 首先,
=
始终意味着在PowerShell中分配。要比较这些值,可以使用-eq
运算符
- 其次,比较值
“$yes”
也被无意中使用。由于未定义变量$yes
,操作数的计算结果为空字符串”
- 最终结果是,
$answer
被“
覆盖,然后由if
语句对其进行评估,从而进入else
块
将行更改为if($answer-eq'yes')
将解决此问题
此外,在do
/until
循环中使用区分大小写的-ccontains
运算符的限制性比需要的更大。PowerShell中的默认设置是进行不区分大小写的比较,以便输入yes
,或yes
或都将通过
或者,如果区分大小写对您的场景很重要,您可能希望在整个脚本中始终使用区分大小写的运算符(即在if
语句中使用-ceq
)
有关更多信息,请参阅帮助主题。主要问题在于行if($answer=“$yes”)
- 首先,
=
始终意味着在PowerShell中分配。要比较这些值,可以使用-eq
运算符
- 其次,比较值
“$yes”
也被无意中使用。由于未定义变量$yes
,操作数的计算结果为空字符串”
- 最终结果是,
$answer
被“
覆盖,然后由if
语句对其进行评估,从而进入else
块
将行更改为if($answer-eq'yes')
将解决此问题
此外,在do
/循环中使用区分大小写的-ccontains
运算符,直到循环更有效