Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell Equals算子的初学者问题_Powershell - Fatal编程技术网

Powershell Equals算子的初学者问题

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

每个人都在断断续续地学习Powershell,我被这个问题困住了。我似乎找不到此代码在=true部分接受的equals运算符。 我试过-eq,=,=,和==。 如果此测试路径命令返回真实条件,则尝试使消息框弹出

$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会失败。有时问题比你意识到的要简单。非常感谢。