PowerShell中的特殊字符!
是什么意思?
或列出所有特殊字符和含义的网站。 例如:
$string = blah
!$String
(返回$ false)
答案 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