Powershell Equals算子的初学者问题
每个人都在断断续续地学习Powershell,我被这个问题困住了。我似乎找不到此代码在=true部分接受的equals运算符。 我试过-eq,=,=,和==。 如果此测试路径命令返回真实条件,则尝试使消息框弹出Powershell Equals算子的初学者问题,powershell,Powershell,每个人都在断断续续地学习Powershell,我被这个问题困住了。我似乎找不到此代码在=true部分接受的equals运算符。 我试过-eq,=,=,和==。 如果此测试路径命令返回真实条件,则尝试使消息框弹出 $wshell = New-Object -ComObject Wscript.Shell If( Test-Path 'C:\wmw\~$test.xlsx' **= True)** { $wshell.Popup("Hey $Env:ComputerName This f
$wshell = New-Object -ComObject Wscript.Shell
If( Test-Path 'C:\wmw\~$test.xlsx' **= True)**
{
$wshell.Popup("Hey $Env:ComputerName This file is in use!",0,"test")}
else
{$wshell.Popup("Hey $Env:ComputerName This file is not in use!",0,"test")}
首先,在PowerShell中,true的字面意思是$true。相等比较的运算符是-eq。然后,cmdlet的参数以-开头,您需要将命令用括号括起来。否则-eq将被解释为测试路径不存在的参数。因此,把所有这些放在一起:
If( (Test-Path 'C:\wmw\~$test.xlsx') -eq $True) { ... }
或者,因为if只需要一个可以强制为布尔值的值,所以在大多数情况下,您甚至不需要显式比较:
if (Test-Path 'C:\wmw\~$test.xlsx') { ... }
对于shell的未来探索,有一个提示:读取错误消息。大多数情况下,它们是有帮助的
省略括号并使用-eq可以告诉您它被解释为一个参数:
测试路径:找不到与参数名称“eq”匹配的参数
与=相同,此处将其解释为参数值:
测试路径:找不到接受参数“=”的位置参数
诚然,正确使用括号和-eq会破坏解析器:
必须在“-eq”运算符后面提供值表达式。
表达式或语句中出现意外标记“True”。
“if”语句中表达式后缺少结束符。
表达式或语句中出现意外标记
使用括号和=同样有用:
赋值表达式无效。赋值运算符的输入必须是能够接受赋值的对象,例如变量或属性
首先,在PowerShell中,true的字面意思是$true。相等比较的运算符是-eq。然后,cmdlet的参数以-开头,您需要将命令用括号括起来。否则-eq将被解释为测试路径不存在的参数。因此,把所有这些放在一起:
If( (Test-Path 'C:\wmw\~$test.xlsx') -eq $True) { ... }
或者,因为if只需要一个可以强制为布尔值的值,所以在大多数情况下,您甚至不需要显式比较:
if (Test-Path 'C:\wmw\~$test.xlsx') { ... }
对于shell的未来探索,有一个提示:读取错误消息。大多数情况下,它们是有帮助的
省略括号并使用-eq可以告诉您它被解释为一个参数:
测试路径:找不到与参数名称“eq”匹配的参数
与=相同,此处将其解释为参数值:
测试路径:找不到接受参数“=”的位置参数
诚然,正确使用括号和-eq会破坏解析器:
必须在“-eq”运算符后面提供值表达式。
表达式或语句中出现意外标记“True”。
“if”语句中表达式后缺少结束符。
表达式或语句中出现意外标记
使用括号和=同样有用:
赋值表达式无效。赋值运算符的输入必须是能够接受赋值的对象,例如变量或属性
它只是一个测试路径'C:\wmw\~$test.xlsx'。在它之后你不需要平等;如果是真的,if会成功,如果是假的,if会失败。有时问题比你意识到的要简单。谢谢,这只是测试路径“C:\wmw\~$test.xlsx”。在它之后你不需要平等;如果是真的,if会成功,如果是假的,if会失败。有时问题比你意识到的要简单。非常感谢。