Próbuję znaleźć sposób na pobranie tego polecenia do filtrowania z tablicy wartości w przeciwieństwie do jednej wartości. Obecnie jest to jak mój kod jest (i to działa, gdy $ ExcludeVerA jest jedna wartość):Używanie komendy Powershell "where" do porównania z tablicą wartości
$ExcludeVerA = "7"
$java = Get-WmiObject -Class win32_product | where { $_.Name -like "*Java*"} |
where ({ $_.Version -notlike "$ExcludeVerA*" })
I chciałbym $ ExcludeVerA mieć tablicę wartości (tak jak to obecnie nie działa):
$ExcludeVerA = "7", "3", "4"
foreach ($x in $ExcludeVerA)
{
$java = Get-WmiObject -Class win32_product | where { $_.Name -like "*Java*"} |
where ({ $_.Version -notlike "$ExcludeVerA*" })
}
Jakieś pomysły, dlaczego ten drugi blok kodu nie działa lub inne pomysły na to, co mogę zrobić?
Pierwszy sposób nie działa, ponieważ $ _ właściwości wersji tych obiektów jest zwykle długa liczba takich jak:. 7.01.04756 i muszę filtrować tylko przez pierwszy numer (tj. muszę przeszukać 7 *). – ThreePhase
Jednak drugi sposób, w jaki pisałeś przy użyciu wyrażeń regularnych, działa pięknie! A to proste i eleganckie. To także wprowadziło mnie do wyrażeń regularnych, więc dzięki za to :) – ThreePhase