Powershell 筛选包含美元符号的字符串

Powershell 筛选包含美元符号的字符串,powershell,Powershell,我正在尝试列出计算机上所有未隐藏的共享。但是我就是不能让where object子句工作。你知道我将如何过滤掉所有带有美元符号的股票名称吗?现在这没有过滤掉任何东西 $ComputerName = "server" $Shares = get-wmiobject -class Win32_share -ComputerName $ComputerName $Shares | Where-Object -FilterScript { $_.Name.tostring() -notcontains

我正在尝试列出计算机上所有未隐藏的共享。但是我就是不能让where object子句工作。你知道我将如何过滤掉所有带有美元符号的股票名称吗?现在这没有过滤掉任何东西

$ComputerName = "server"
$Shares = get-wmiobject -class Win32_share -ComputerName $ComputerName 
$Shares | Where-Object -FilterScript { $_.Name.tostring() -notcontains "\`$" }
我知道这很简单,但我就是搞不懂

编辑: 如果有人想复制我的脚本(更改名称以保护无辜者):


我不知道它在速度方面与安全壳操作符相比如何,但我会使用匹配操作符来实现这一点:

$Shares | Where-Object -FilterScript { $_.Name.tostring() -notlike '*$*' }

我不知道它在速度方面与安全壳操作符相比如何,但我会使用匹配操作符来实现这一点:

$Shares | Where-Object -FilterScript { $_.Name.tostring() -notlike '*$*' }

正如@EBGreen所说,我们应该:

$Shares | Where-Object -FilterScript { $_.Name.tostring() -notlike '*$*' }

原因是
-notcontains
用于数组搜索

正如@EBGreen所说,我们应该:

$Shares | Where-Object -FilterScript { $_.Name.tostring() -notlike '*$*' }

原因是
-notcontains
用于数组搜索

就这样。谢谢就这样。谢谢好的,如果你真的想使用包含操作符,在这个特定的例子中你可以做:$Shares | Where Object-FilterScript{$\.Name.ToCharArray()-notcontains'$}好的,如果你真的想使用包含操作符,在这个特定的例子中你可以做:$Shares | Where Object-FilterScript{$\.Name.ToCharArray()-不包含“$”}