【发布时间】:2016-09-30 22:28:36
【问题描述】:
如何编写“字符串是否包含 -not _”/“字符串是否包含除 _ 以外的任何内容”的脚本?
我没有陷入困境,因为我找到了足够好的解决方法。好奇心胜过一切。
例子:
$String = 1,1,1,2,5
$String -contains !(1)
这总是假的
我目前的解决方案是删除 1 并查看它是否为 null,如下所示:
$String2 = $String -ne 1
if ([String]::IsNullOrEmpty($String2)) {
Write-Host "True"
} else {
Write-Host "False"
}
现实世界的例子:
我的脚本旨在尝试某个操作,直到它起作用。在这种情况下,获取 msoluser。 在我的脚本结束时,我想计算任何错误(并稍后列出),但总会有一个为“get-msoluser”列出的错误,因为它在它工作之前会失败。所以我试图在计数中不包括那个特定的错误。
$Errors = $Error.InvocationInfo.MyCommand.Name
if ($Errors -contains !("get-msoluser")) {
Write-Host "There was an error I actually care about"
}
我必须这样做:
$Errors = $Error.InvocationInfo.MyCommand.Name
$ErrorsICareAbout = $Errors -ne "get-msoluser"
if ([String]::IsNullOrEmpty($ErrorsICareAbout)) {
Write-Host "$ErrorsICareAbout.Count"
} else {
Write-Host "There were errors you actually cared about"
}
我错过了什么就在我眼皮底下吗?
【问题讨论】:
-
你试过
If (!($Errors -contains ("get-msoluser"))) -
是的。就在我的鼻子底下。谢谢!
-
-notcontains是您要查找的运算符。
标签: powershell