Ich versuche einen Weg zu finden, wie dieser Befehl aus einem Array von Werten im Gegensatz zu einem Wert gefiltert werden kann. Derzeit ist dies, wie mein Code (und es funktioniert, wenn $ ExcludeVerA ein Wert ist):Verwenden von Powershell "Where" -Befehl zum Vergleich mit Array von Werten
$ExcludeVerA = "7"
$java = Get-WmiObject -Class win32_product | where { $_.Name -like "*Java*"} |
where ({ $_.Version -notlike "$ExcludeVerA*" })
und ich möchte $ ExcludeVerA ein Array von Werten haben, wie so (dies zur Zeit nicht funktioniert):
$ExcludeVerA = "7", "3", "4"
foreach ($x in $ExcludeVerA)
{
$java = Get-WmiObject -Class win32_product | where { $_.Name -like "*Java*"} |
where ({ $_.Version -notlike "$ExcludeVerA*" })
}
Irgendwelche Ideen, warum dieser zweite Block des Codes nicht funktioniert oder andere Ideen, was ich tun kann?
Der erste Weg nicht funktioniert, weil der $ _ Version Eigenschaften dieser Objekte ist in der Regel eine lange Zahl wie:. 7.01.04756 und ich brauche nur die erste Zahl filtern (dh ich muss 7 * suchen). – ThreePhase
Die zweite Art, wie Sie mit regulären Ausdrücken geschrieben haben, funktioniert jedoch wunderbar! Und es ist einfach und elegant. Es hat mich auch zu regulären Ausdrücken geführt, also vielen Dank dafür :) – ThreePhase