小编E.V*_*.L.的帖子

PowerShell逻辑

看一下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)

powershell logic compare equals

8
推荐指数
1
解决办法
1897
查看次数

为什么这样(或如何)?

在今天的电子邮件中,我收到了一封关于获取未使用的驱动器号 这是他们的解决方案:

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

variables powershell dynamic

3
推荐指数
1
解决办法
142
查看次数

标签 统计

powershell ×2

compare ×1

dynamic ×1

equals ×1

logic ×1

variables ×1