特殊字符是什么“!”在PowerShell中意味着什么?

时间:2013-12-29 17:45:05

标签: powershell special-characters

PowerShell中的特殊字符!是什么意思?

或列出所有特殊字符和含义的网站。 例如:

$string = blah
!$String

(返回$ false)

3 个答案:

答案 0 :(得分:8)

PowerShell使用!字符作为逻辑-not运算符的别名:

$true
!$true
$false
!$false

True
False
False
True

答案 1 :(得分:4)

PowerShell将所有空的,$ Null或0解释为Boolean $ False。 Bool只能有$ True或$ False。

通过将值转换为布尔值,您可以看到PowerShell为每个值解释的内容:

[bool]0        # False
[bool]1        # True
[bool]""       # False
[bool]"test"   # True
[bool]$null    # False

locical NOT操作将每个布尔值转换为相反的位置:

!$True   # Is $False
!$False  # Is $True

![bool]0        # True
![bool]1        # False
![bool]""       # True
![bool]"test"   # False
![bool]$null    # True

您正在为变量分配一个字符串,然后检查它是否为空。

$string = blah
!$String         # $String is not $Null or Empty so it is $True
                 # But the !(NOT) operation turns it to $False

编程语言中的条件和循环仅适用于布尔值。

因此,在获取用户输入时,您可以使用它来检查用户是否输入了文本,并对其做出反应:

$UserName = Read-Host -Prompt "Whats your Name Sir?"
If ($UserName) {
     Write-Output "Happy Birthday $UserName"
}
Else {
     Write-Output "I can't congratulate you as I don't know your name :("
}

答案 2 :(得分:1)

PowerShell中的!(感叹号)字符是-not运算符的快捷方式(“不等于”)。

例如:

$a = $null;
if(!$a) {
    Write-Host '$a is null'
}

输出。

$a is null