看一下PowerShell的帮助部分about_Comparison_Operators,我理解这一点:
PS C:\> $false,$false -eq $true
PS C:\>
Run Code Online (Sandbox Code Playgroud)
左边没有任何东西与右边的东西匹配,所以没有任何东西甚至没有返回$null.
我不明白这个:
PS C:\> $true -eq $false,$false
True
PS C:\>
Run Code Online (Sandbox Code Playgroud)
是因为它首先$true -eq $false返回False,然后取False并$false -eq $false返回True吗?
更多信息
下面返回false的原因是因为它将字符串与数组进行比较,对吗?字符串不等于数组.
PS C:\> "abc" -eq "abc","def"
False
Run Code Online (Sandbox Code Playgroud)
回答?
更多的挖掘表明它$true等于一个物体.
PS C:\> $true -eq [array]
True
PS C:\> $true -eq [string]
True
PS C:\> $true -eq [int]
True
PS C:\> $true -eq [bool]
True
Run Code Online (Sandbox Code Playgroud)
重要的是这些对象的价值.
PS C:\> $true -eq …Run Code Online (Sandbox Code Playgroud) 在今天的电子邮件中,我收到了一封关于获取未使用的驱动器号 这是他们的解决方案:
Get-ChildItem function:[d-z]: -Name | Where-Object {-not (Test-Path -Path $_)}
Run Code Online (Sandbox Code Playgroud)
PowerShell杂志BrainTeaser有一个解决方案,同样的事情.
ls function:[d-z]: -n|?{!(test-path $_)}|random
Run Code Online (Sandbox Code Playgroud)
我不知道是怎么function:[d-z]:运作的.我知道对于'd'到'z'之间的每个字符都使用但我不知道为什么语法有效.
测试Get-ChildItem function:[d-a]: -Name会给你一个错误Get-ChildItem : Cannot retrieve the dynamic parameters for the cmdlet. The specified wildcard pattern is not valid:[d-a]:
这是一个动态参数吗?怎么没有出现Get-Help gci -full?